Generated by Cython 3.0a0

Yellow lines hint at Python interaction.
Click on a line that starts with a "+" to see the C code that Cython generated for it.

Raw output: join.c

+001: import cython
    __pyx_t_28 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 1, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_28);
    #if CYTHON_COMPILING_IN_LIMITED_API
    __Pyx_INCREF(__pyx_t_28);
    if (PyModule_AddObject(__pyx_m, __pyx_k_test, __pyx_t_28) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
    #else
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_28) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
    #endif
    __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
 002: from cython import Py_ssize_t
 003: 
+004: import numpy as np
    __pyx_t_1 = __Pyx_ImportDottedModule(__pyx_n_s_numpy, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    #if CYTHON_COMPILING_IN_LIMITED_API
    __Pyx_INCREF(__pyx_t_1);
    if (PyModule_AddObject(__pyx_m, __pyx_k_np, __pyx_t_1) < 0) __PYX_ERR(0, 4, __pyx_L1_error)
    #else
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_1) < 0) __PYX_ERR(0, 4, __pyx_L1_error)
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 005: cimport numpy as cnp
 006: from numpy cimport (
 007:     float32_t,
 008:     float64_t,
 009:     int8_t,
 010:     int16_t,
 011:     int32_t,
 012:     int64_t,
 013:     ndarray,
 014:     uint8_t,
 015:     uint16_t,
 016:     uint32_t,
 017:     uint64_t,
 018: )
+019: cnp.import_array()
    __pyx_t_2 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 19, __pyx_L1_error)
 020: 
+021: from pandas._libs.algos import (
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pandas__libs_algos, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 21, __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_ensure_platform_int); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    #if CYTHON_COMPILING_IN_LIMITED_API
    __Pyx_INCREF(__pyx_t_1);
    if (PyModule_AddObject(__pyx_m, __pyx_k_ensure_platform_int, __pyx_t_1) < 0) __PYX_ERR(0, 22, __pyx_L1_error)
    #else
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_ensure_platform_int, __pyx_t_1) < 0) __PYX_ERR(0, 22, __pyx_L1_error)
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_groupsort_indexer); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    #if CYTHON_COMPILING_IN_LIMITED_API
    __Pyx_INCREF(__pyx_t_1);
    if (PyModule_AddObject(__pyx_m, __pyx_k_groupsort_indexer, __pyx_t_1) < 0) __PYX_ERR(0, 23, __pyx_L1_error)
    #else
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_groupsort_indexer, __pyx_t_1) < 0) __PYX_ERR(0, 23, __pyx_L1_error)
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_take_1d_int64_int64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    #if CYTHON_COMPILING_IN_LIMITED_API
    __Pyx_INCREF(__pyx_t_1);
    if (PyModule_AddObject(__pyx_m, __pyx_k_take_1d_int64_int64, __pyx_t_1) < 0) __PYX_ERR(0, 24, __pyx_L1_error)
    #else
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_take_1d_int64_int64, __pyx_t_1) < 0) __PYX_ERR(0, 24, __pyx_L1_error)
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+022:     ensure_platform_int,
    __pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_ensure_platform_int);
    __Pyx_GIVEREF(__pyx_n_s_ensure_platform_int);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_ensure_platform_int);
    __Pyx_INCREF(__pyx_n_s_groupsort_indexer);
    __Pyx_GIVEREF(__pyx_n_s_groupsort_indexer);
    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_groupsort_indexer);
    __Pyx_INCREF(__pyx_n_s_take_1d_int64_int64);
    __Pyx_GIVEREF(__pyx_n_s_take_1d_int64_int64);
    PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_s_take_1d_int64_int64);
 023:     groupsort_indexer,
 024:     take_1d_int64_int64,
 025: )
 026: 
 027: 
+028: @cython.boundscheck(False)
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_1inner_join(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_1inner_join = {"inner_join", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6pandas_5_libs_4join_1inner_join, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6pandas_5_libs_4join_1inner_join(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  __Pyx_memviewslice __pyx_v_left = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right = { 0, 0, { 0 }, { 0 }, { 0 } };
  Py_ssize_t __pyx_v_max_groups;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("inner_join (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,&__pyx_n_s_max_groups,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,&__pyx_n_s_max_groups,0};
    #endif
    PyObject* values[3] = {0,0,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_left)) != 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 (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 28, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("inner_join", 1, 3, 3, 1); __PYX_ERR(0, 28, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_max_groups)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 28, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("inner_join", 1, 3, 3, 2); __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, "inner_join") < 0)) __PYX_ERR(0, 28, __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_left = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t__const__(values[0], 0); if (unlikely(!__pyx_v_left.memview)) __PYX_ERR(0, 29, __pyx_L3_error)
    __pyx_v_right = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t__const__(values[1], 0); if (unlikely(!__pyx_v_right.memview)) __PYX_ERR(0, 29, __pyx_L3_error)
    __pyx_v_max_groups = __Pyx_PyIndex_AsSsize_t(values[2]); if (unlikely((__pyx_v_max_groups == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 30, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("inner_join", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 28, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.inner_join", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_inner_join(__pyx_self, __pyx_v_left, __pyx_v_right, __pyx_v_max_groups);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_inner_join(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left, __Pyx_memviewslice __pyx_v_right, Py_ssize_t __pyx_v_max_groups) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_k;
  Py_ssize_t __pyx_v_count;
  PyArrayObject *__pyx_v_left_count = 0;
  PyArrayObject *__pyx_v_right_count = 0;
  PyArrayObject *__pyx_v_left_sorter = 0;
  PyArrayObject *__pyx_v_right_sorter = 0;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  __pyx_t_5numpy_int64_t __pyx_v_lc;
  __pyx_t_5numpy_int64_t __pyx_v_rc;
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_position;
  Py_ssize_t __pyx_v_offset;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_count;
  __Pyx_Buffer __pyx_pybuffer_left_count;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_sorter;
  __Pyx_Buffer __pyx_pybuffer_left_sorter;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_count;
  __Pyx_Buffer __pyx_pybuffer_right_count;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_sorter;
  __Pyx_Buffer __pyx_pybuffer_right_sorter;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("inner_join", 0);
  __pyx_pybuffer_left_count.pybuffer.buf = NULL;
  __pyx_pybuffer_left_count.refcount = 0;
  __pyx_pybuffernd_left_count.data = NULL;
  __pyx_pybuffernd_left_count.rcbuffer = &__pyx_pybuffer_left_count;
  __pyx_pybuffer_right_count.pybuffer.buf = NULL;
  __pyx_pybuffer_right_count.refcount = 0;
  __pyx_pybuffernd_right_count.data = NULL;
  __pyx_pybuffernd_right_count.rcbuffer = &__pyx_pybuffer_right_count;
  __pyx_pybuffer_left_sorter.pybuffer.buf = NULL;
  __pyx_pybuffer_left_sorter.refcount = 0;
  __pyx_pybuffernd_left_sorter.data = NULL;
  __pyx_pybuffernd_left_sorter.rcbuffer = &__pyx_pybuffer_left_sorter;
  __pyx_pybuffer_right_sorter.pybuffer.buf = NULL;
  __pyx_pybuffer_right_sorter.refcount = 0;
  __pyx_pybuffernd_right_sorter.data = NULL;
  __pyx_pybuffernd_right_sorter.rcbuffer = &__pyx_pybuffer_right_sorter;
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* 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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_count.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_sorter.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_count.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_sorter.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.inner_join", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_count.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_sorter.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_count.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_sorter.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_count);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_count);
  __Pyx_XDECREF((PyObject *)__pyx_v_left_sorter);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_sorter);
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__38 = PyTuple_Pack(20, __pyx_n_s_left, __pyx_n_s_right, __pyx_n_s_max_groups, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_k, __pyx_n_s_count, __pyx_n_s_left_count, __pyx_n_s_right_count, __pyx_n_s_left_sorter, __pyx_n_s_right_sorter, __pyx_n_s_left_indexer, __pyx_n_s_right_indexer, __pyx_n_s_lc, __pyx_n_s_rc, __pyx_n_s_loc, __pyx_n_s_left_pos, __pyx_n_s_right_pos, __pyx_n_s_position, __pyx_n_s_offset); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__38);
  __Pyx_GIVEREF(__pyx_tuple__38);
/* … */
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_1inner_join, 0, __pyx_n_s_inner_join, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_1, ((PyObject *)__pyx_codeobj__39)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 28, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    #else
    __pyx_t_3 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_1inner_join, 0, __pyx_n_s_inner_join, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__39)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 28, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_3);
    #if CYTHON_COMPILING_IN_LIMITED_API
    __Pyx_INCREF(__pyx_t_3);
    if (PyModule_AddObject(__pyx_m, __pyx_k_inner_join, __pyx_t_3) < 0) __PYX_ERR(0, 28, __pyx_L1_error)
    #else
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_inner_join, __pyx_t_3) < 0) __PYX_ERR(0, 28, __pyx_L1_error)
    #endif
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_codeobj__39 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 20, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__38, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_inner_join, 28, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__39)) __PYX_ERR(0, 28, __pyx_L1_error)
 029: def inner_join(const int64_t[:] left, const int64_t[:] right,
 030:                Py_ssize_t max_groups):
 031:     cdef:
+032:         Py_ssize_t i, j, k, count = 0
  __pyx_v_count = 0;
 033:         ndarray[int64_t] left_count, right_count, left_sorter, right_sorter
 034:         ndarray[int64_t] left_indexer, right_indexer
 035:         int64_t lc, rc
+036:         Py_ssize_t loc, left_pos = 0, right_pos = 0, position = 0
  __pyx_v_left_pos = 0;
  __pyx_v_right_pos = 0;
  __pyx_v_position = 0;
 037:         Py_ssize_t offset
 038: 
 039:     # NA group in location 0
 040: 
+041:     left_sorter, left_count = groupsort_indexer(left, max_groups)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_groupsort_indexer); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t__const__, (int (*)(char *, PyObject *)) NULL, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_max_groups); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 41, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  if (CYTHON_UNPACK_METHODS && 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;
    }
  }
  {
    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, 41, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 41, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_2 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 41, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 41, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 41, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = Py_TYPE(__pyx_t_3)->tp_iternext;
    index = 0; __pyx_t_2 = __pyx_t_7(__pyx_t_3); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    index = 1; __pyx_t_4 = __pyx_t_7(__pyx_t_3); if (unlikely(!__pyx_t_4)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_3), 2) < 0) __PYX_ERR(0, 41, __pyx_L1_error)
    __pyx_t_7 = NULL;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_7 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 41, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 41, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 41, __pyx_L1_error)
  __pyx_t_8 = ((PyArrayObject *)__pyx_t_2);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_sorter.rcbuffer->pybuffer);
    __pyx_t_9 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_sorter.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_9 < 0)) {
      PyErr_Fetch(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_sorter.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_sorter, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_10, __pyx_t_11, __pyx_t_12);
      }
      __pyx_t_10 = __pyx_t_11 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_left_sorter.diminfo[0].strides = __pyx_pybuffernd_left_sorter.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_sorter.diminfo[0].shape = __pyx_pybuffernd_left_sorter.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 41, __pyx_L1_error)
  }
  __pyx_t_8 = 0;
  __pyx_v_left_sorter = ((PyArrayObject *)__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_8 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_count.rcbuffer->pybuffer);
    __pyx_t_9 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_count.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_9 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_11, &__pyx_t_10);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_count.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_count, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_11, __pyx_t_10);
      }
      __pyx_t_12 = __pyx_t_11 = __pyx_t_10 = 0;
    }
    __pyx_pybuffernd_left_count.diminfo[0].strides = __pyx_pybuffernd_left_count.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_count.diminfo[0].shape = __pyx_pybuffernd_left_count.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 41, __pyx_L1_error)
  }
  __pyx_t_8 = 0;
  __pyx_v_left_count = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
+042:     right_sorter, right_count = groupsort_indexer(right, max_groups)
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_groupsort_indexer); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 42, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t__const__, (int (*)(char *, PyObject *)) NULL, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 42, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_max_groups); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 42, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_9 = 0;
  if (CYTHON_UNPACK_METHODS && 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_9 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_2, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_9, 2+__pyx_t_9);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 42, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 42, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_4 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_3);
    #else
    __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 42, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 42, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 42, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_4 = __pyx_t_7(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    index = 1; __pyx_t_3 = __pyx_t_7(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_2), 2) < 0) __PYX_ERR(0, 42, __pyx_L1_error)
    __pyx_t_7 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_7 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 42, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 42, __pyx_L1_error)
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 42, __pyx_L1_error)
  __pyx_t_8 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_sorter.rcbuffer->pybuffer);
    __pyx_t_13 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_sorter.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_13 < 0)) {
      PyErr_Fetch(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_sorter.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_sorter, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_10, __pyx_t_11, __pyx_t_12);
      }
      __pyx_t_10 = __pyx_t_11 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_sorter.diminfo[0].strides = __pyx_pybuffernd_right_sorter.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_sorter.diminfo[0].shape = __pyx_pybuffernd_right_sorter.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 42, __pyx_L1_error)
  }
  __pyx_t_8 = 0;
  __pyx_v_right_sorter = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_t_8 = ((PyArrayObject *)__pyx_t_3);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_count.rcbuffer->pybuffer);
    __pyx_t_13 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_count.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_13 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_11, &__pyx_t_10);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_count.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_count, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_11, __pyx_t_10);
      }
      __pyx_t_12 = __pyx_t_11 = __pyx_t_10 = 0;
    }
    __pyx_pybuffernd_right_count.diminfo[0].strides = __pyx_pybuffernd_right_count.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_count.diminfo[0].shape = __pyx_pybuffernd_right_count.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 42, __pyx_L1_error)
  }
  __pyx_t_8 = 0;
  __pyx_v_right_count = ((PyArrayObject *)__pyx_t_3);
  __pyx_t_3 = 0;
 043: 
+044:     with nogil:
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {
/* … */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L9;
        }
        __pyx_L9:;
      }
  }
 045:         # First pass, determine size of result set, do not use the NA group
+046:         for i in range(1, max_groups + 1):
        __pyx_t_14 = (__pyx_v_max_groups + 1);
        __pyx_t_15 = __pyx_t_14;
        for (__pyx_t_16 = 1; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
          __pyx_v_i = __pyx_t_16;
+047:             lc = left_count[i]
          __pyx_t_17 = __pyx_v_i;
          if (__pyx_t_17 < 0) __pyx_t_17 += __pyx_pybuffernd_left_count.diminfo[0].shape;
          __pyx_v_lc = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_count.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_left_count.diminfo[0].strides));
+048:             rc = right_count[i]
          __pyx_t_18 = __pyx_v_i;
          if (__pyx_t_18 < 0) __pyx_t_18 += __pyx_pybuffernd_right_count.diminfo[0].shape;
          __pyx_v_rc = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_count.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_count.diminfo[0].strides));
 049: 
+050:             if rc > 0 and lc > 0:
          __pyx_t_20 = ((__pyx_v_rc > 0) != 0);
          if (__pyx_t_20) {
          } else {
            __pyx_t_19 = __pyx_t_20;
            goto __pyx_L13_bool_binop_done;
          }
          __pyx_t_20 = ((__pyx_v_lc > 0) != 0);
          __pyx_t_19 = __pyx_t_20;
          __pyx_L13_bool_binop_done:;
          if (__pyx_t_19) {
/* … */
          }
        }
      }
+051:                 count += lc * rc
            __pyx_v_count = (__pyx_v_count + (__pyx_v_lc * __pyx_v_rc));
 052: 
 053:     # exclude the NA group
+054:     left_pos = left_count[0]
  __pyx_t_21 = 0;
  if (__pyx_t_21 < 0) __pyx_t_21 += __pyx_pybuffernd_left_count.diminfo[0].shape;
  __pyx_v_left_pos = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_count.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_left_count.diminfo[0].strides));
+055:     right_pos = right_count[0]
  __pyx_t_22 = 0;
  if (__pyx_t_22 < 0) __pyx_t_22 += __pyx_pybuffernd_right_count.diminfo[0].shape;
  __pyx_v_right_pos = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_count.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_right_count.diminfo[0].strides));
 056: 
+057:     left_indexer = np.empty(count, dtype=np.int64)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 57, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 57, __pyx_L1_error)
  __pyx_t_23 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_13 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_23, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_13 < 0)) {
      PyErr_Fetch(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_10, __pyx_t_11, __pyx_t_12);
      }
      __pyx_t_10 = __pyx_t_11 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 57, __pyx_L1_error)
  }
  __pyx_t_23 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
+058:     right_indexer = np.empty(count, dtype=np.int64)
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_2) < 0) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 58, __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_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 58, __pyx_L1_error)
  __pyx_t_23 = ((PyArrayObject *)__pyx_t_2);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_13 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_23, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_13 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_11, &__pyx_t_10);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_11, __pyx_t_10);
      }
      __pyx_t_12 = __pyx_t_11 = __pyx_t_10 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 58, __pyx_L1_error)
  }
  __pyx_t_23 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_2);
  __pyx_t_2 = 0;
 059: 
+060:     with nogil:
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {
/* … */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L17;
        }
        __pyx_L17:;
      }
  }
+061:         for i in range(1, max_groups + 1):
        __pyx_t_14 = (__pyx_v_max_groups + 1);
        __pyx_t_15 = __pyx_t_14;
        for (__pyx_t_16 = 1; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
          __pyx_v_i = __pyx_t_16;
+062:             lc = left_count[i]
          __pyx_t_24 = __pyx_v_i;
          if (__pyx_t_24 < 0) __pyx_t_24 += __pyx_pybuffernd_left_count.diminfo[0].shape;
          __pyx_v_lc = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_count.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_left_count.diminfo[0].strides));
+063:             rc = right_count[i]
          __pyx_t_25 = __pyx_v_i;
          if (__pyx_t_25 < 0) __pyx_t_25 += __pyx_pybuffernd_right_count.diminfo[0].shape;
          __pyx_v_rc = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_count.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_right_count.diminfo[0].strides));
 064: 
+065:             if rc > 0 and lc > 0:
          __pyx_t_20 = ((__pyx_v_rc > 0) != 0);
          if (__pyx_t_20) {
          } else {
            __pyx_t_19 = __pyx_t_20;
            goto __pyx_L21_bool_binop_done;
          }
          __pyx_t_20 = ((__pyx_v_lc > 0) != 0);
          __pyx_t_19 = __pyx_t_20;
          __pyx_L21_bool_binop_done:;
          if (__pyx_t_19) {
/* … */
          }
+066:                 for j in range(lc):
            __pyx_t_26 = __pyx_v_lc;
            __pyx_t_27 = __pyx_t_26;
            for (__pyx_t_28 = 0; __pyx_t_28 < __pyx_t_27; __pyx_t_28+=1) {
              __pyx_v_j = __pyx_t_28;
+067:                     offset = position + j * rc
              __pyx_v_offset = (__pyx_v_position + (__pyx_v_j * __pyx_v_rc));
+068:                     for k in range(rc):
              __pyx_t_29 = __pyx_v_rc;
              __pyx_t_30 = __pyx_t_29;
              for (__pyx_t_31 = 0; __pyx_t_31 < __pyx_t_30; __pyx_t_31+=1) {
                __pyx_v_k = __pyx_t_31;
+069:                         left_indexer[offset + k] = left_pos + j
                __pyx_t_32 = (__pyx_v_offset + __pyx_v_k);
                if (__pyx_t_32 < 0) __pyx_t_32 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
                *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (__pyx_v_left_pos + __pyx_v_j);
+070:                         right_indexer[offset + k] = right_pos + k
                __pyx_t_33 = (__pyx_v_offset + __pyx_v_k);
                if (__pyx_t_33 < 0) __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
                *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = (__pyx_v_right_pos + __pyx_v_k);
              }
            }
+071:                 position += lc * rc
            __pyx_v_position = (__pyx_v_position + (__pyx_v_lc * __pyx_v_rc));
+072:             left_pos += lc
          __pyx_v_left_pos = (__pyx_v_left_pos + __pyx_v_lc);
+073:             right_pos += rc
          __pyx_v_right_pos = (__pyx_v_right_pos + __pyx_v_rc);
        }
      }
 074: 
+075:     return (_get_result_indexer(left_sorter, left_indexer),
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __pyx_f_6pandas_5_libs_4join__get_result_indexer(((PyArrayObject *)__pyx_v_left_sorter), ((PyArrayObject *)__pyx_v_left_indexer)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 75, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5);
  __pyx_t_2 = 0;
  __pyx_t_5 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;
+076:             _get_result_indexer(right_sorter, right_indexer))
  __pyx_t_5 = __pyx_f_6pandas_5_libs_4join__get_result_indexer(((PyArrayObject *)__pyx_v_right_sorter), ((PyArrayObject *)__pyx_v_right_indexer)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
 077: 
 078: 
+079: @cython.boundscheck(False)
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_3left_outer_join(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_3left_outer_join = {"left_outer_join", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6pandas_5_libs_4join_3left_outer_join, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6pandas_5_libs_4join_3left_outer_join(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  __Pyx_memviewslice __pyx_v_left = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right = { 0, 0, { 0 }, { 0 }, { 0 } };
  Py_ssize_t __pyx_v_max_groups;
  int __pyx_v_sort;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_outer_join (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,&__pyx_n_s_max_groups,&__pyx_n_s_sort,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,&__pyx_n_s_max_groups,&__pyx_n_s_sort,0};
    #endif
    PyObject* values[4] = {0,0,0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 79, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 79, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("left_outer_join", 0, 3, 4, 1); __PYX_ERR(0, 79, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_max_groups)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 79, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("left_outer_join", 0, 3, 4, 2); __PYX_ERR(0, 79, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_sort);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 79, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "left_outer_join") < 0)) __PYX_ERR(0, 79, __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);
        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_left = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t__const__(values[0], 0); if (unlikely(!__pyx_v_left.memview)) __PYX_ERR(0, 80, __pyx_L3_error)
    __pyx_v_right = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t__const__(values[1], 0); if (unlikely(!__pyx_v_right.memview)) __PYX_ERR(0, 80, __pyx_L3_error)
    __pyx_v_max_groups = __Pyx_PyIndex_AsSsize_t(values[2]); if (unlikely((__pyx_v_max_groups == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 81, __pyx_L3_error)
    if (values[3]) {
      __pyx_v_sort = __Pyx_PyObject_IsTrue(values[3]); if (unlikely((__pyx_v_sort == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 81, __pyx_L3_error)
    } else {
/* … */
  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_2left_outer_join(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left, __Pyx_memviewslice __pyx_v_right, Py_ssize_t __pyx_v_max_groups, int __pyx_v_sort) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_k;
  Py_ssize_t __pyx_v_count;
  PyArrayObject *__pyx_v_left_count = 0;
  PyArrayObject *__pyx_v_right_count = 0;
  PyArrayObject *__pyx_v_left_sorter = 0;
  PyArrayObject *__pyx_v_right_sorter = 0;
  PyArrayObject *__pyx_v_rev = 0;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  __pyx_t_5numpy_int64_t __pyx_v_lc;
  __pyx_t_5numpy_int64_t __pyx_v_rc;
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_position;
  Py_ssize_t __pyx_v_offset;
  CYTHON_UNUSED PyObject *__pyx_v__ = NULL;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_count;
  __Pyx_Buffer __pyx_pybuffer_left_count;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_sorter;
  __Pyx_Buffer __pyx_pybuffer_left_sorter;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_count;
  __Pyx_Buffer __pyx_pybuffer_right_count;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_sorter;
  __Pyx_Buffer __pyx_pybuffer_right_sorter;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_outer_join", 0);
  __pyx_pybuffer_left_count.pybuffer.buf = NULL;
  __pyx_pybuffer_left_count.refcount = 0;
  __pyx_pybuffernd_left_count.data = NULL;
  __pyx_pybuffernd_left_count.rcbuffer = &__pyx_pybuffer_left_count;
  __pyx_pybuffer_right_count.pybuffer.buf = NULL;
  __pyx_pybuffer_right_count.refcount = 0;
  __pyx_pybuffernd_right_count.data = NULL;
  __pyx_pybuffernd_right_count.rcbuffer = &__pyx_pybuffer_right_count;
  __pyx_pybuffer_left_sorter.pybuffer.buf = NULL;
  __pyx_pybuffer_left_sorter.refcount = 0;
  __pyx_pybuffernd_left_sorter.data = NULL;
  __pyx_pybuffernd_left_sorter.rcbuffer = &__pyx_pybuffer_left_sorter;
  __pyx_pybuffer_right_sorter.pybuffer.buf = NULL;
  __pyx_pybuffer_right_sorter.refcount = 0;
  __pyx_pybuffernd_right_sorter.data = NULL;
  __pyx_pybuffernd_right_sorter.rcbuffer = &__pyx_pybuffer_right_sorter;
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* 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_37);
  __Pyx_XDECREF(__pyx_t_38);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_count.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_sorter.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_count.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_sorter.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_outer_join", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_count.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_sorter.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_count.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_sorter.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_count);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_count);
  __Pyx_XDECREF((PyObject *)__pyx_v_left_sorter);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_sorter);
  __Pyx_XDECREF((PyObject *)__pyx_v_rev);
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF(__pyx_v__);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__41 = PyTuple_Pack(23, __pyx_n_s_left, __pyx_n_s_right, __pyx_n_s_max_groups, __pyx_n_s_sort, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_k, __pyx_n_s_count, __pyx_n_s_left_count, __pyx_n_s_right_count, __pyx_n_s_left_sorter, __pyx_n_s_right_sorter, __pyx_n_s_rev, __pyx_n_s_left_indexer, __pyx_n_s_right_indexer, __pyx_n_s_lc, __pyx_n_s_rc, __pyx_n_s_loc, __pyx_n_s_left_pos, __pyx_n_s_right_pos, __pyx_n_s_position, __pyx_n_s_offset, __pyx_n_s__40); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(0, 79, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__41);
  __Pyx_GIVEREF(__pyx_tuple__41);
/* … */
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 79, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
    __pyx_t_3 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 79, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_3left_outer_join, 0, __pyx_n_s_left_outer_join, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_4, ((PyObject *)__pyx_codeobj__42)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 79, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    #else
    __pyx_t_3 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_3left_outer_join, 0, __pyx_n_s_left_outer_join, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__42)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 79, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __Pyx_INCREF(__pyx_t_3);
    if (PyModule_AddObject(__pyx_m, __pyx_k_left_outer_join, __pyx_t_3) < 0) __PYX_ERR(0, 79, __pyx_L1_error)
    #else
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_left_outer_join, __pyx_t_3) < 0) __PYX_ERR(0, 79, __pyx_L1_error)
    #endif
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_codeobj__42 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 23, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__41, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_left_outer_join, 79, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__42)) __PYX_ERR(0, 79, __pyx_L1_error)
 080: def left_outer_join(const int64_t[:] left, const int64_t[:] right,
+081:                     Py_ssize_t max_groups, bint sort=True):
      __pyx_v_sort = ((int)((int)1));
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_outer_join", 0, 3, 4, __pyx_nargs); __PYX_ERR(0, 79, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_outer_join", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_2left_outer_join(__pyx_self, __pyx_v_left, __pyx_v_right, __pyx_v_max_groups, __pyx_v_sort);
/* … */
    __pyx_t_3 = __Pyx_PyBool_FromLong(((int)1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 81, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
 082:     cdef:
+083:         Py_ssize_t i, j, k, count = 0
  __pyx_v_count = 0;
 084:         ndarray[int64_t] left_count, right_count, left_sorter, right_sorter
 085:         ndarray rev
 086:         ndarray[int64_t] left_indexer, right_indexer
 087:         int64_t lc, rc
+088:         Py_ssize_t loc, left_pos = 0, right_pos = 0, position = 0
  __pyx_v_left_pos = 0;
  __pyx_v_right_pos = 0;
  __pyx_v_position = 0;
 089:         Py_ssize_t offset
 090: 
 091:     # NA group in location 0
 092: 
+093:     left_sorter, left_count = groupsort_indexer(left, max_groups)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_groupsort_indexer); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 93, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t__const__, (int (*)(char *, PyObject *)) NULL, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 93, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_max_groups); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 93, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  if (CYTHON_UNPACK_METHODS && 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;
    }
  }
  {
    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, 93, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 93, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_2 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 93, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 93, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 93, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = Py_TYPE(__pyx_t_3)->tp_iternext;
    index = 0; __pyx_t_2 = __pyx_t_7(__pyx_t_3); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    index = 1; __pyx_t_4 = __pyx_t_7(__pyx_t_3); if (unlikely(!__pyx_t_4)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_3), 2) < 0) __PYX_ERR(0, 93, __pyx_L1_error)
    __pyx_t_7 = NULL;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_7 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 93, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 93, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 93, __pyx_L1_error)
  __pyx_t_8 = ((PyArrayObject *)__pyx_t_2);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_sorter.rcbuffer->pybuffer);
    __pyx_t_9 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_sorter.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_9 < 0)) {
      PyErr_Fetch(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_sorter.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_sorter, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_10, __pyx_t_11, __pyx_t_12);
      }
      __pyx_t_10 = __pyx_t_11 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_left_sorter.diminfo[0].strides = __pyx_pybuffernd_left_sorter.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_sorter.diminfo[0].shape = __pyx_pybuffernd_left_sorter.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 93, __pyx_L1_error)
  }
  __pyx_t_8 = 0;
  __pyx_v_left_sorter = ((PyArrayObject *)__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_8 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_count.rcbuffer->pybuffer);
    __pyx_t_9 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_count.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_9 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_11, &__pyx_t_10);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_count.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_count, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_11, __pyx_t_10);
      }
      __pyx_t_12 = __pyx_t_11 = __pyx_t_10 = 0;
    }
    __pyx_pybuffernd_left_count.diminfo[0].strides = __pyx_pybuffernd_left_count.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_count.diminfo[0].shape = __pyx_pybuffernd_left_count.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 93, __pyx_L1_error)
  }
  __pyx_t_8 = 0;
  __pyx_v_left_count = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
+094:     right_sorter, right_count = groupsort_indexer(right, max_groups)
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_groupsort_indexer); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t__const__, (int (*)(char *, PyObject *)) NULL, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_max_groups); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_9 = 0;
  if (CYTHON_UNPACK_METHODS && 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_9 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_2, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_9, 2+__pyx_t_9);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 94, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 94, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_4 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_3);
    #else
    __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 94, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 94, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 94, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_4 = __pyx_t_7(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    index = 1; __pyx_t_3 = __pyx_t_7(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_2), 2) < 0) __PYX_ERR(0, 94, __pyx_L1_error)
    __pyx_t_7 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_7 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 94, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 94, __pyx_L1_error)
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 94, __pyx_L1_error)
  __pyx_t_8 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_sorter.rcbuffer->pybuffer);
    __pyx_t_13 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_sorter.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_13 < 0)) {
      PyErr_Fetch(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_sorter.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_sorter, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_10, __pyx_t_11, __pyx_t_12);
      }
      __pyx_t_10 = __pyx_t_11 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_sorter.diminfo[0].strides = __pyx_pybuffernd_right_sorter.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_sorter.diminfo[0].shape = __pyx_pybuffernd_right_sorter.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 94, __pyx_L1_error)
  }
  __pyx_t_8 = 0;
  __pyx_v_right_sorter = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_t_8 = ((PyArrayObject *)__pyx_t_3);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_count.rcbuffer->pybuffer);
    __pyx_t_13 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_count.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_13 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_11, &__pyx_t_10);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_count.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_count, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_11, __pyx_t_10);
      }
      __pyx_t_12 = __pyx_t_11 = __pyx_t_10 = 0;
    }
    __pyx_pybuffernd_right_count.diminfo[0].strides = __pyx_pybuffernd_right_count.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_count.diminfo[0].shape = __pyx_pybuffernd_right_count.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 94, __pyx_L1_error)
  }
  __pyx_t_8 = 0;
  __pyx_v_right_count = ((PyArrayObject *)__pyx_t_3);
  __pyx_t_3 = 0;
 095: 
+096:     with nogil:
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {
/* … */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L9;
        }
        __pyx_L9:;
      }
  }
 097:         # First pass, determine size of result set, do not use the NA group
+098:         for i in range(1, max_groups + 1):
        __pyx_t_14 = (__pyx_v_max_groups + 1);
        __pyx_t_15 = __pyx_t_14;
        for (__pyx_t_16 = 1; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
          __pyx_v_i = __pyx_t_16;
+099:             if right_count[i] > 0:
          __pyx_t_17 = __pyx_v_i;
          if (__pyx_t_17 < 0) __pyx_t_17 += __pyx_pybuffernd_right_count.diminfo[0].shape;
          __pyx_t_18 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_count.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_count.diminfo[0].strides)) > 0) != 0);
          if (__pyx_t_18) {
/* … */
            goto __pyx_L12;
          }
+100:                 count += left_count[i] * right_count[i]
            __pyx_t_19 = __pyx_v_i;
            if (__pyx_t_19 < 0) __pyx_t_19 += __pyx_pybuffernd_left_count.diminfo[0].shape;
            __pyx_t_20 = __pyx_v_i;
            if (__pyx_t_20 < 0) __pyx_t_20 += __pyx_pybuffernd_right_count.diminfo[0].shape;
            __pyx_v_count = (__pyx_v_count + ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_count.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_left_count.diminfo[0].strides)) * (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_count.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_right_count.diminfo[0].strides))));
 101:             else:
+102:                 count += left_count[i]
          /*else*/ {
            __pyx_t_21 = __pyx_v_i;
            if (__pyx_t_21 < 0) __pyx_t_21 += __pyx_pybuffernd_left_count.diminfo[0].shape;
            __pyx_v_count = (__pyx_v_count + (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_count.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_left_count.diminfo[0].strides)));
          }
          __pyx_L12:;
        }
      }
 103: 
 104:     # exclude the NA group
+105:     left_pos = left_count[0]
  __pyx_t_22 = 0;
  if (__pyx_t_22 < 0) __pyx_t_22 += __pyx_pybuffernd_left_count.diminfo[0].shape;
  __pyx_v_left_pos = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_count.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_left_count.diminfo[0].strides));
+106:     right_pos = right_count[0]
  __pyx_t_23 = 0;
  if (__pyx_t_23 < 0) __pyx_t_23 += __pyx_pybuffernd_right_count.diminfo[0].shape;
  __pyx_v_right_pos = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_count.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_right_count.diminfo[0].strides));
 107: 
+108:     left_indexer = np.empty(count, dtype=np.int64)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 108, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 108, __pyx_L1_error)
  __pyx_t_24 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_13 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_13 < 0)) {
      PyErr_Fetch(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_10, __pyx_t_11, __pyx_t_12);
      }
      __pyx_t_10 = __pyx_t_11 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 108, __pyx_L1_error)
  }
  __pyx_t_24 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
+109:     right_indexer = np.empty(count, dtype=np.int64)
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_2) < 0) __PYX_ERR(0, 109, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 109, __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_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 109, __pyx_L1_error)
  __pyx_t_24 = ((PyArrayObject *)__pyx_t_2);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_13 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_13 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_11, &__pyx_t_10);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_11, __pyx_t_10);
      }
      __pyx_t_12 = __pyx_t_11 = __pyx_t_10 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 109, __pyx_L1_error)
  }
  __pyx_t_24 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_2);
  __pyx_t_2 = 0;
 110: 
+111:     with nogil:
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {
/* … */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L15;
        }
        __pyx_L15:;
      }
  }
+112:         for i in range(1, max_groups + 1):
        __pyx_t_14 = (__pyx_v_max_groups + 1);
        __pyx_t_15 = __pyx_t_14;
        for (__pyx_t_16 = 1; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
          __pyx_v_i = __pyx_t_16;
+113:             lc = left_count[i]
          __pyx_t_25 = __pyx_v_i;
          if (__pyx_t_25 < 0) __pyx_t_25 += __pyx_pybuffernd_left_count.diminfo[0].shape;
          __pyx_v_lc = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_count.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_left_count.diminfo[0].strides));
+114:             rc = right_count[i]
          __pyx_t_26 = __pyx_v_i;
          if (__pyx_t_26 < 0) __pyx_t_26 += __pyx_pybuffernd_right_count.diminfo[0].shape;
          __pyx_v_rc = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_count.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_right_count.diminfo[0].strides));
 115: 
+116:             if rc == 0:
          __pyx_t_18 = ((__pyx_v_rc == 0) != 0);
          if (__pyx_t_18) {
/* … */
            goto __pyx_L18;
          }
+117:                 for j in range(lc):
            __pyx_t_27 = __pyx_v_lc;
            __pyx_t_28 = __pyx_t_27;
            for (__pyx_t_29 = 0; __pyx_t_29 < __pyx_t_28; __pyx_t_29+=1) {
              __pyx_v_j = __pyx_t_29;
+118:                     left_indexer[position + j] = left_pos + j
              __pyx_t_30 = (__pyx_v_position + __pyx_v_j);
              if (__pyx_t_30 < 0) __pyx_t_30 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
              *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (__pyx_v_left_pos + __pyx_v_j);
+119:                     right_indexer[position + j] = -1
              __pyx_t_31 = (__pyx_v_position + __pyx_v_j);
              if (__pyx_t_31 < 0) __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
              *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
            }
+120:                 position += lc
            __pyx_v_position = (__pyx_v_position + __pyx_v_lc);
 121:             else:
+122:                 for j in range(lc):
          /*else*/ {
            __pyx_t_27 = __pyx_v_lc;
            __pyx_t_28 = __pyx_t_27;
            for (__pyx_t_29 = 0; __pyx_t_29 < __pyx_t_28; __pyx_t_29+=1) {
              __pyx_v_j = __pyx_t_29;
+123:                     offset = position + j * rc
              __pyx_v_offset = (__pyx_v_position + (__pyx_v_j * __pyx_v_rc));
+124:                     for k in range(rc):
              __pyx_t_32 = __pyx_v_rc;
              __pyx_t_33 = __pyx_t_32;
              for (__pyx_t_34 = 0; __pyx_t_34 < __pyx_t_33; __pyx_t_34+=1) {
                __pyx_v_k = __pyx_t_34;
+125:                         left_indexer[offset + k] = left_pos + j
                __pyx_t_35 = (__pyx_v_offset + __pyx_v_k);
                if (__pyx_t_35 < 0) __pyx_t_35 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
                *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (__pyx_v_left_pos + __pyx_v_j);
+126:                         right_indexer[offset + k] = right_pos + k
                __pyx_t_36 = (__pyx_v_offset + __pyx_v_k);
                if (__pyx_t_36 < 0) __pyx_t_36 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
                *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = (__pyx_v_right_pos + __pyx_v_k);
              }
            }
+127:                 position += lc * rc
            __pyx_v_position = (__pyx_v_position + (__pyx_v_lc * __pyx_v_rc));
          }
          __pyx_L18:;
+128:             left_pos += lc
          __pyx_v_left_pos = (__pyx_v_left_pos + __pyx_v_lc);
+129:             right_pos += rc
          __pyx_v_right_pos = (__pyx_v_right_pos + __pyx_v_rc);
        }
      }
 130: 
+131:     left_indexer = _get_result_indexer(left_sorter, left_indexer)
  __pyx_t_2 = __pyx_f_6pandas_5_libs_4join__get_result_indexer(((PyArrayObject *)__pyx_v_left_sorter), ((PyArrayObject *)__pyx_v_left_indexer)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 131, __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, 131, __pyx_L1_error)
  __pyx_t_24 = ((PyArrayObject *)__pyx_t_2);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_13 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_13 < 0)) {
      PyErr_Fetch(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_10, __pyx_t_11, __pyx_t_12);
      }
      __pyx_t_10 = __pyx_t_11 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 131, __pyx_L1_error)
  }
  __pyx_t_24 = 0;
  __Pyx_DECREF_SET(__pyx_v_left_indexer, ((PyArrayObject *)__pyx_t_2));
  __pyx_t_2 = 0;
+132:     right_indexer = _get_result_indexer(right_sorter, right_indexer)
  __pyx_t_2 = __pyx_f_6pandas_5_libs_4join__get_result_indexer(((PyArrayObject *)__pyx_v_right_sorter), ((PyArrayObject *)__pyx_v_right_indexer)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 132, __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, 132, __pyx_L1_error)
  __pyx_t_24 = ((PyArrayObject *)__pyx_t_2);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_13 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_13 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_11, &__pyx_t_10);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_11, __pyx_t_10);
      }
      __pyx_t_12 = __pyx_t_11 = __pyx_t_10 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 132, __pyx_L1_error)
  }
  __pyx_t_24 = 0;
  __Pyx_DECREF_SET(__pyx_v_right_indexer, ((PyArrayObject *)__pyx_t_2));
  __pyx_t_2 = 0;
 133: 
+134:     if not sort:  # if not asked to sort, revert to original order
  __pyx_t_18 = ((!(__pyx_v_sort != 0)) != 0);
  if (__pyx_t_18) {
/* … */
  }
 135:         # cast to avoid build warning GH#26757
+136:         if <Py_ssize_t>len(left) == len(left_indexer):
    __pyx_t_14 = __Pyx_MemoryView_Len(__pyx_v_left); 
    __pyx_t_15 = PyObject_Length(((PyObject *)__pyx_v_left_indexer)); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 136, __pyx_L1_error)
    __pyx_t_18 = ((((Py_ssize_t)__pyx_t_14) == __pyx_t_15) != 0);
    if (__pyx_t_18) {
/* … */
      goto __pyx_L26;
    }
 137:             # no multiple matches for any row on the left
 138:             # this is a short-cut to avoid groupsort_indexer
 139:             # otherwise, the `else` path also works in this case
+140:             rev = np.empty(len(left), dtype=np.intp)
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 140, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 140, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_15 = __Pyx_MemoryView_Len(__pyx_v_left); 
      __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_15); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 140, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 140, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
      __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 140, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_intp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 140, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_3) < 0) __PYX_ERR(0, 140, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 140, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 140, __pyx_L1_error)
      __pyx_v_rev = ((PyArrayObject *)__pyx_t_3);
      __pyx_t_3 = 0;
+141:             rev.put(ensure_platform_int(left_sorter), np.arange(len(left)))
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_rev), __pyx_n_s_put); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 141, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_ensure_platform_int); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 141, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = NULL;
      __pyx_t_13 = 0;
      if (CYTHON_UNPACK_METHODS && unlikely(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_13 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_1, ((PyObject *)__pyx_v_left_sorter)};
        __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_13, 1+__pyx_t_13);
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 141, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
      __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_37 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_arange); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 141, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_37);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_15 = __Pyx_MemoryView_Len(__pyx_v_left); 
      __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_38 = NULL;
      __pyx_t_39 = 0;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_37))) {
        __pyx_t_38 = PyMethod_GET_SELF(__pyx_t_37);
        if (likely(__pyx_t_38)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_37);
          __Pyx_INCREF(__pyx_t_38);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_37, function);
          __pyx_t_39 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_38, __pyx_t_1};
        __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_37, __pyx_callargs+1-__pyx_t_39, 1+__pyx_t_39);
        __Pyx_XDECREF(__pyx_t_38); __pyx_t_38 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 141, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
      }
      __pyx_t_37 = NULL;
      __pyx_t_40 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_37)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_37);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
          __pyx_t_40 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_37, __pyx_t_4, __pyx_t_5};
        __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_40, 2+__pyx_t_40);
        __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 141, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 142:         else:
+143:             rev, _ = groupsort_indexer(left_indexer, len(left))
    /*else*/ {
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_groupsort_indexer); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_15 = __Pyx_MemoryView_Len(__pyx_v_left); 
      __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 143, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = NULL;
      __pyx_t_41 = 0;
      if (CYTHON_UNPACK_METHODS && 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_41 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_4, ((PyObject *)__pyx_v_left_indexer), __pyx_t_5};
        __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_41, 2+__pyx_t_41);
        __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, 143, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
        PyObject* sequence = __pyx_t_3;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(0, 143, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_2 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_5 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_5);
        #else
        __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 143, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 143, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext;
        index = 0; __pyx_t_2 = __pyx_t_7(__pyx_t_4); if (unlikely(!__pyx_t_2)) goto __pyx_L27_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_2);
        index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_4); if (unlikely(!__pyx_t_5)) goto __pyx_L27_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_5);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_4), 2) < 0) __PYX_ERR(0, 143, __pyx_L1_error)
        __pyx_t_7 = NULL;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        goto __pyx_L28_unpacking_done;
        __pyx_L27_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_7 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 143, __pyx_L1_error)
        __pyx_L28_unpacking_done:;
      }
      if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 143, __pyx_L1_error)
      __pyx_v_rev = ((PyArrayObject *)__pyx_t_2);
      __pyx_t_2 = 0;
      __pyx_v__ = __pyx_t_5;
      __pyx_t_5 = 0;
    }
    __pyx_L26:;
 144: 
+145:         rev = ensure_platform_int(rev)
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_ensure_platform_int); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 145, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = NULL;
    __pyx_t_42 = 0;
    if (CYTHON_UNPACK_METHODS && 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_42 = 1;
      }
    }
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_rev)};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_42, 1+__pyx_t_42);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 145, __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, 145, __pyx_L1_error)
    __Pyx_DECREF_SET(__pyx_v_rev, ((PyArrayObject *)__pyx_t_3));
    __pyx_t_3 = 0;
+146:         right_indexer = right_indexer.take(rev)
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_right_indexer), __pyx_n_s_take); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = NULL;
    __pyx_t_43 = 0;
    if (CYTHON_UNPACK_METHODS && likely(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_43 = 1;
      }
    }
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_rev)};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_43, 1+__pyx_t_43);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 146, __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, 146, __pyx_L1_error)
    __pyx_t_24 = ((PyArrayObject *)__pyx_t_3);
    {
      __Pyx_BufFmt_StackElem __pyx_stack[1];
      __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
      __pyx_t_44 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
      if (unlikely(__pyx_t_44 < 0)) {
        PyErr_Fetch(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
        if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
          Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_12);
          __Pyx_RaiseBufferFallbackError();
        } else {
          PyErr_Restore(__pyx_t_10, __pyx_t_11, __pyx_t_12);
        }
        __pyx_t_10 = __pyx_t_11 = __pyx_t_12 = 0;
      }
      __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
      if (unlikely(__pyx_t_44 < 0)) __PYX_ERR(0, 146, __pyx_L1_error)
    }
    __pyx_t_24 = 0;
    __Pyx_DECREF_SET(__pyx_v_right_indexer, ((PyArrayObject *)__pyx_t_3));
    __pyx_t_3 = 0;
+147:         left_indexer = left_indexer.take(rev)
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left_indexer), __pyx_n_s_take); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 147, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = NULL;
    __pyx_t_44 = 0;
    if (CYTHON_UNPACK_METHODS && likely(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_44 = 1;
      }
    }
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)__pyx_v_rev)};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_44, 1+__pyx_t_44);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 147, __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, 147, __pyx_L1_error)
    __pyx_t_24 = ((PyArrayObject *)__pyx_t_3);
    {
      __Pyx_BufFmt_StackElem __pyx_stack[1];
      __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
      __pyx_t_45 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
      if (unlikely(__pyx_t_45 < 0)) {
        PyErr_Fetch(&__pyx_t_12, &__pyx_t_11, &__pyx_t_10);
        if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
          Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10);
          __Pyx_RaiseBufferFallbackError();
        } else {
          PyErr_Restore(__pyx_t_12, __pyx_t_11, __pyx_t_10);
        }
        __pyx_t_12 = __pyx_t_11 = __pyx_t_10 = 0;
      }
      __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
      if (unlikely(__pyx_t_45 < 0)) __PYX_ERR(0, 147, __pyx_L1_error)
    }
    __pyx_t_24 = 0;
    __Pyx_DECREF_SET(__pyx_v_left_indexer, ((PyArrayObject *)__pyx_t_3));
    __pyx_t_3 = 0;
 148: 
+149:     return left_indexer, right_indexer
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 149, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;
 150: 
 151: 
+152: @cython.boundscheck(False)
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_5full_outer_join(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_5full_outer_join = {"full_outer_join", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6pandas_5_libs_4join_5full_outer_join, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6pandas_5_libs_4join_5full_outer_join(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  __Pyx_memviewslice __pyx_v_left = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right = { 0, 0, { 0 }, { 0 }, { 0 } };
  Py_ssize_t __pyx_v_max_groups;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("full_outer_join (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,&__pyx_n_s_max_groups,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,&__pyx_n_s_max_groups,0};
    #endif
    PyObject* values[3] = {0,0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 152, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 152, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("full_outer_join", 1, 3, 3, 1); __PYX_ERR(0, 152, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_max_groups)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 152, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("full_outer_join", 1, 3, 3, 2); __PYX_ERR(0, 152, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "full_outer_join") < 0)) __PYX_ERR(0, 152, __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_left = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t__const__(values[0], 0); if (unlikely(!__pyx_v_left.memview)) __PYX_ERR(0, 153, __pyx_L3_error)
    __pyx_v_right = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t__const__(values[1], 0); if (unlikely(!__pyx_v_right.memview)) __PYX_ERR(0, 153, __pyx_L3_error)
    __pyx_v_max_groups = __Pyx_PyIndex_AsSsize_t(values[2]); if (unlikely((__pyx_v_max_groups == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 154, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("full_outer_join", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 152, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.full_outer_join", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_4full_outer_join(__pyx_self, __pyx_v_left, __pyx_v_right, __pyx_v_max_groups);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_4full_outer_join(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left, __Pyx_memviewslice __pyx_v_right, Py_ssize_t __pyx_v_max_groups) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_k;
  Py_ssize_t __pyx_v_count;
  PyArrayObject *__pyx_v_left_count = 0;
  PyArrayObject *__pyx_v_right_count = 0;
  PyArrayObject *__pyx_v_left_sorter = 0;
  PyArrayObject *__pyx_v_right_sorter = 0;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  __pyx_t_5numpy_int64_t __pyx_v_lc;
  __pyx_t_5numpy_int64_t __pyx_v_rc;
  __pyx_t_5numpy_int64_t __pyx_v_left_pos;
  __pyx_t_5numpy_int64_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_offset;
  Py_ssize_t __pyx_v_position;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_count;
  __Pyx_Buffer __pyx_pybuffer_left_count;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_sorter;
  __Pyx_Buffer __pyx_pybuffer_left_sorter;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_count;
  __Pyx_Buffer __pyx_pybuffer_right_count;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_sorter;
  __Pyx_Buffer __pyx_pybuffer_right_sorter;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("full_outer_join", 0);
  __pyx_pybuffer_left_count.pybuffer.buf = NULL;
  __pyx_pybuffer_left_count.refcount = 0;
  __pyx_pybuffernd_left_count.data = NULL;
  __pyx_pybuffernd_left_count.rcbuffer = &__pyx_pybuffer_left_count;
  __pyx_pybuffer_right_count.pybuffer.buf = NULL;
  __pyx_pybuffer_right_count.refcount = 0;
  __pyx_pybuffernd_right_count.data = NULL;
  __pyx_pybuffernd_right_count.rcbuffer = &__pyx_pybuffer_right_count;
  __pyx_pybuffer_left_sorter.pybuffer.buf = NULL;
  __pyx_pybuffer_left_sorter.refcount = 0;
  __pyx_pybuffernd_left_sorter.data = NULL;
  __pyx_pybuffernd_left_sorter.rcbuffer = &__pyx_pybuffer_left_sorter;
  __pyx_pybuffer_right_sorter.pybuffer.buf = NULL;
  __pyx_pybuffer_right_sorter.refcount = 0;
  __pyx_pybuffernd_right_sorter.data = NULL;
  __pyx_pybuffernd_right_sorter.rcbuffer = &__pyx_pybuffer_right_sorter;
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* 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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_count.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_sorter.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_count.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_sorter.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.full_outer_join", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_count.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_sorter.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_count.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_sorter.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_count);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_count);
  __Pyx_XDECREF((PyObject *)__pyx_v_left_sorter);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_sorter);
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__43 = PyTuple_Pack(19, __pyx_n_s_left, __pyx_n_s_right, __pyx_n_s_max_groups, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_k, __pyx_n_s_count, __pyx_n_s_left_count, __pyx_n_s_right_count, __pyx_n_s_left_sorter, __pyx_n_s_right_sorter, __pyx_n_s_left_indexer, __pyx_n_s_right_indexer, __pyx_n_s_lc, __pyx_n_s_rc, __pyx_n_s_left_pos, __pyx_n_s_right_pos, __pyx_n_s_offset, __pyx_n_s_position); if (unlikely(!__pyx_tuple__43)) __PYX_ERR(0, 152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__43);
  __Pyx_GIVEREF(__pyx_tuple__43);
/* … */
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 152, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_5full_outer_join, 0, __pyx_n_s_full_outer_join, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_1, ((PyObject *)__pyx_codeobj__44)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 152, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    #else
    __pyx_t_3 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_5full_outer_join, 0, __pyx_n_s_full_outer_join, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__44)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 152, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_3);
    #if CYTHON_COMPILING_IN_LIMITED_API
    __Pyx_INCREF(__pyx_t_3);
    if (PyModule_AddObject(__pyx_m, __pyx_k_full_outer_join, __pyx_t_3) < 0) __PYX_ERR(0, 152, __pyx_L1_error)
    #else
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_full_outer_join, __pyx_t_3) < 0) __PYX_ERR(0, 152, __pyx_L1_error)
    #endif
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_codeobj__44 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 19, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__43, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_full_outer_join, 152, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__44)) __PYX_ERR(0, 152, __pyx_L1_error)
 153: def full_outer_join(const int64_t[:] left, const int64_t[:] right,
 154:                     Py_ssize_t max_groups):
 155:     cdef:
+156:         Py_ssize_t i, j, k, count = 0
  __pyx_v_count = 0;
 157:         ndarray[int64_t] left_count, right_count, left_sorter, right_sorter
 158:         ndarray[int64_t] left_indexer, right_indexer
 159:         int64_t lc, rc
+160:         int64_t left_pos = 0, right_pos = 0
  __pyx_v_left_pos = 0;
  __pyx_v_right_pos = 0;
+161:         Py_ssize_t offset, position = 0
  __pyx_v_position = 0;
 162: 
 163:     # NA group in location 0
 164: 
+165:     left_sorter, left_count = groupsort_indexer(left, max_groups)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_groupsort_indexer); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t__const__, (int (*)(char *, PyObject *)) NULL, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_max_groups); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  if (CYTHON_UNPACK_METHODS && 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;
    }
  }
  {
    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, 165, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 165, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_2 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 165, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 165, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 165, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = Py_TYPE(__pyx_t_3)->tp_iternext;
    index = 0; __pyx_t_2 = __pyx_t_7(__pyx_t_3); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    index = 1; __pyx_t_4 = __pyx_t_7(__pyx_t_3); if (unlikely(!__pyx_t_4)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_3), 2) < 0) __PYX_ERR(0, 165, __pyx_L1_error)
    __pyx_t_7 = NULL;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_7 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 165, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 165, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 165, __pyx_L1_error)
  __pyx_t_8 = ((PyArrayObject *)__pyx_t_2);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_sorter.rcbuffer->pybuffer);
    __pyx_t_9 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_sorter.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_9 < 0)) {
      PyErr_Fetch(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_sorter.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_sorter, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_10, __pyx_t_11, __pyx_t_12);
      }
      __pyx_t_10 = __pyx_t_11 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_left_sorter.diminfo[0].strides = __pyx_pybuffernd_left_sorter.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_sorter.diminfo[0].shape = __pyx_pybuffernd_left_sorter.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 165, __pyx_L1_error)
  }
  __pyx_t_8 = 0;
  __pyx_v_left_sorter = ((PyArrayObject *)__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_8 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_count.rcbuffer->pybuffer);
    __pyx_t_9 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_count.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_9 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_11, &__pyx_t_10);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_count.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_count, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_11, __pyx_t_10);
      }
      __pyx_t_12 = __pyx_t_11 = __pyx_t_10 = 0;
    }
    __pyx_pybuffernd_left_count.diminfo[0].strides = __pyx_pybuffernd_left_count.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_count.diminfo[0].shape = __pyx_pybuffernd_left_count.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 165, __pyx_L1_error)
  }
  __pyx_t_8 = 0;
  __pyx_v_left_count = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
+166:     right_sorter, right_count = groupsort_indexer(right, max_groups)
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_groupsort_indexer); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t__const__, (int (*)(char *, PyObject *)) NULL, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_max_groups); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_9 = 0;
  if (CYTHON_UNPACK_METHODS && 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_9 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_2, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_9, 2+__pyx_t_9);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 166, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 166, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_4 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_t_3);
    #else
    __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 166, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 166, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 166, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_4 = __pyx_t_7(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    index = 1; __pyx_t_3 = __pyx_t_7(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_2), 2) < 0) __PYX_ERR(0, 166, __pyx_L1_error)
    __pyx_t_7 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_7 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 166, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 166, __pyx_L1_error)
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 166, __pyx_L1_error)
  __pyx_t_8 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_sorter.rcbuffer->pybuffer);
    __pyx_t_13 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_sorter.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_13 < 0)) {
      PyErr_Fetch(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_sorter.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_sorter, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_10, __pyx_t_11, __pyx_t_12);
      }
      __pyx_t_10 = __pyx_t_11 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_sorter.diminfo[0].strides = __pyx_pybuffernd_right_sorter.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_sorter.diminfo[0].shape = __pyx_pybuffernd_right_sorter.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 166, __pyx_L1_error)
  }
  __pyx_t_8 = 0;
  __pyx_v_right_sorter = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_t_8 = ((PyArrayObject *)__pyx_t_3);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_count.rcbuffer->pybuffer);
    __pyx_t_13 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_count.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_13 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_11, &__pyx_t_10);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_count.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_count, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_11, __pyx_t_10);
      }
      __pyx_t_12 = __pyx_t_11 = __pyx_t_10 = 0;
    }
    __pyx_pybuffernd_right_count.diminfo[0].strides = __pyx_pybuffernd_right_count.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_count.diminfo[0].shape = __pyx_pybuffernd_right_count.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 166, __pyx_L1_error)
  }
  __pyx_t_8 = 0;
  __pyx_v_right_count = ((PyArrayObject *)__pyx_t_3);
  __pyx_t_3 = 0;
 167: 
+168:     with nogil:
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {
/* … */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L9;
        }
        __pyx_L9:;
      }
  }
 169:         # First pass, determine size of result set, do not use the NA group
+170:         for i in range(1, max_groups + 1):
        __pyx_t_14 = (__pyx_v_max_groups + 1);
        __pyx_t_15 = __pyx_t_14;
        for (__pyx_t_16 = 1; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
          __pyx_v_i = __pyx_t_16;
+171:             lc = left_count[i]
          __pyx_t_17 = __pyx_v_i;
          if (__pyx_t_17 < 0) __pyx_t_17 += __pyx_pybuffernd_left_count.diminfo[0].shape;
          __pyx_v_lc = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_count.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_left_count.diminfo[0].strides));
+172:             rc = right_count[i]
          __pyx_t_18 = __pyx_v_i;
          if (__pyx_t_18 < 0) __pyx_t_18 += __pyx_pybuffernd_right_count.diminfo[0].shape;
          __pyx_v_rc = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_count.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_count.diminfo[0].strides));
 173: 
+174:             if rc > 0 and lc > 0:
          __pyx_t_20 = ((__pyx_v_rc > 0) != 0);
          if (__pyx_t_20) {
          } else {
            __pyx_t_19 = __pyx_t_20;
            goto __pyx_L13_bool_binop_done;
          }
          __pyx_t_20 = ((__pyx_v_lc > 0) != 0);
          __pyx_t_19 = __pyx_t_20;
          __pyx_L13_bool_binop_done:;
          if (__pyx_t_19) {
/* … */
            goto __pyx_L12;
          }
+175:                 count += lc * rc
            __pyx_v_count = (__pyx_v_count + (__pyx_v_lc * __pyx_v_rc));
 176:             else:
+177:                 count += lc + rc
          /*else*/ {
            __pyx_v_count = (__pyx_v_count + (__pyx_v_lc + __pyx_v_rc));
          }
          __pyx_L12:;
        }
      }
 178: 
 179:     # exclude the NA group
+180:     left_pos = left_count[0]
  __pyx_t_21 = 0;
  if (__pyx_t_21 < 0) __pyx_t_21 += __pyx_pybuffernd_left_count.diminfo[0].shape;
  __pyx_v_left_pos = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_count.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_left_count.diminfo[0].strides));
+181:     right_pos = right_count[0]
  __pyx_t_22 = 0;
  if (__pyx_t_22 < 0) __pyx_t_22 += __pyx_pybuffernd_right_count.diminfo[0].shape;
  __pyx_v_right_pos = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_count.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_right_count.diminfo[0].strides));
 182: 
+183:     left_indexer = np.empty(count, dtype=np.int64)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 183, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 183, __pyx_L1_error)
  __pyx_t_23 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_13 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_23, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_13 < 0)) {
      PyErr_Fetch(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_10, __pyx_t_11, __pyx_t_12);
      }
      __pyx_t_10 = __pyx_t_11 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 183, __pyx_L1_error)
  }
  __pyx_t_23 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
+184:     right_indexer = np.empty(count, dtype=np.int64)
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 184, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_2) < 0) __PYX_ERR(0, 184, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 184, __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_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 184, __pyx_L1_error)
  __pyx_t_23 = ((PyArrayObject *)__pyx_t_2);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_13 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_23, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_13 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_11, &__pyx_t_10);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_11, __pyx_t_10);
      }
      __pyx_t_12 = __pyx_t_11 = __pyx_t_10 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 184, __pyx_L1_error)
  }
  __pyx_t_23 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_2);
  __pyx_t_2 = 0;
 185: 
+186:     with nogil:
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {
/* … */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L17;
        }
        __pyx_L17:;
      }
  }
+187:         for i in range(1, max_groups + 1):
        __pyx_t_14 = (__pyx_v_max_groups + 1);
        __pyx_t_15 = __pyx_t_14;
        for (__pyx_t_16 = 1; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
          __pyx_v_i = __pyx_t_16;
+188:             lc = left_count[i]
          __pyx_t_24 = __pyx_v_i;
          if (__pyx_t_24 < 0) __pyx_t_24 += __pyx_pybuffernd_left_count.diminfo[0].shape;
          __pyx_v_lc = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_count.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_left_count.diminfo[0].strides));
+189:             rc = right_count[i]
          __pyx_t_25 = __pyx_v_i;
          if (__pyx_t_25 < 0) __pyx_t_25 += __pyx_pybuffernd_right_count.diminfo[0].shape;
          __pyx_v_rc = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_count.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_right_count.diminfo[0].strides));
 190: 
+191:             if rc == 0:
          __pyx_t_19 = ((__pyx_v_rc == 0) != 0);
          if (__pyx_t_19) {
/* … */
            goto __pyx_L20;
          }
+192:                 for j in range(lc):
            __pyx_t_26 = __pyx_v_lc;
            __pyx_t_27 = __pyx_t_26;
            for (__pyx_t_28 = 0; __pyx_t_28 < __pyx_t_27; __pyx_t_28+=1) {
              __pyx_v_j = __pyx_t_28;
+193:                     left_indexer[position + j] = left_pos + j
              __pyx_t_29 = (__pyx_v_position + __pyx_v_j);
              if (__pyx_t_29 < 0) __pyx_t_29 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
              *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_29, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (__pyx_v_left_pos + __pyx_v_j);
+194:                     right_indexer[position + j] = -1
              __pyx_t_30 = (__pyx_v_position + __pyx_v_j);
              if (__pyx_t_30 < 0) __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
              *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
            }
+195:                 position += lc
            __pyx_v_position = (__pyx_v_position + __pyx_v_lc);
+196:             elif lc == 0:
          __pyx_t_19 = ((__pyx_v_lc == 0) != 0);
          if (__pyx_t_19) {
/* … */
            goto __pyx_L20;
          }
+197:                 for j in range(rc):
            __pyx_t_26 = __pyx_v_rc;
            __pyx_t_27 = __pyx_t_26;
            for (__pyx_t_28 = 0; __pyx_t_28 < __pyx_t_27; __pyx_t_28+=1) {
              __pyx_v_j = __pyx_t_28;
+198:                     left_indexer[position + j] = -1
              __pyx_t_31 = (__pyx_v_position + __pyx_v_j);
              if (__pyx_t_31 < 0) __pyx_t_31 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
              *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = -1LL;
+199:                     right_indexer[position + j] = right_pos + j
              __pyx_t_32 = (__pyx_v_position + __pyx_v_j);
              if (__pyx_t_32 < 0) __pyx_t_32 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
              *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = (__pyx_v_right_pos + __pyx_v_j);
            }
+200:                 position += rc
            __pyx_v_position = (__pyx_v_position + __pyx_v_rc);
 201:             else:
+202:                 for j in range(lc):
          /*else*/ {
            __pyx_t_26 = __pyx_v_lc;
            __pyx_t_27 = __pyx_t_26;
            for (__pyx_t_28 = 0; __pyx_t_28 < __pyx_t_27; __pyx_t_28+=1) {
              __pyx_v_j = __pyx_t_28;
+203:                     offset = position + j * rc
              __pyx_v_offset = (__pyx_v_position + (__pyx_v_j * __pyx_v_rc));
+204:                     for k in range(rc):
              __pyx_t_33 = __pyx_v_rc;
              __pyx_t_34 = __pyx_t_33;
              for (__pyx_t_35 = 0; __pyx_t_35 < __pyx_t_34; __pyx_t_35+=1) {
                __pyx_v_k = __pyx_t_35;
+205:                         left_indexer[offset + k] = left_pos + j
                __pyx_t_36 = (__pyx_v_offset + __pyx_v_k);
                if (__pyx_t_36 < 0) __pyx_t_36 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
                *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (__pyx_v_left_pos + __pyx_v_j);
+206:                         right_indexer[offset + k] = right_pos + k
                __pyx_t_37 = (__pyx_v_offset + __pyx_v_k);
                if (__pyx_t_37 < 0) __pyx_t_37 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
                *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = (__pyx_v_right_pos + __pyx_v_k);
              }
            }
+207:                 position += lc * rc
            __pyx_v_position = (__pyx_v_position + (__pyx_v_lc * __pyx_v_rc));
          }
          __pyx_L20:;
+208:             left_pos += lc
          __pyx_v_left_pos = (__pyx_v_left_pos + __pyx_v_lc);
+209:             right_pos += rc
          __pyx_v_right_pos = (__pyx_v_right_pos + __pyx_v_rc);
        }
      }
 210: 
+211:     return (_get_result_indexer(left_sorter, left_indexer),
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __pyx_f_6pandas_5_libs_4join__get_result_indexer(((PyArrayObject *)__pyx_v_left_sorter), ((PyArrayObject *)__pyx_v_left_indexer)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5);
  __pyx_t_2 = 0;
  __pyx_t_5 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;
+212:             _get_result_indexer(right_sorter, right_indexer))
  __pyx_t_5 = __pyx_f_6pandas_5_libs_4join__get_result_indexer(((PyArrayObject *)__pyx_v_right_sorter), ((PyArrayObject *)__pyx_v_right_indexer)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
 213: 
 214: 
+215: cdef _get_result_indexer(ndarray[int64_t] sorter, ndarray[int64_t] indexer):
static PyObject *__pyx_f_6pandas_5_libs_4join__get_result_indexer(PyArrayObject *__pyx_v_sorter, PyArrayObject *__pyx_v_indexer) {
  PyObject *__pyx_v_res = NULL;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_indexer;
  __Pyx_Buffer __pyx_pybuffer_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_sorter;
  __Pyx_Buffer __pyx_pybuffer_sorter;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_get_result_indexer", 0);
  __pyx_pybuffer_sorter.pybuffer.buf = NULL;
  __pyx_pybuffer_sorter.refcount = 0;
  __pyx_pybuffernd_sorter.data = NULL;
  __pyx_pybuffernd_sorter.rcbuffer = &__pyx_pybuffer_sorter;
  __pyx_pybuffer_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_indexer.refcount = 0;
  __pyx_pybuffernd_indexer.data = NULL;
  __pyx_pybuffernd_indexer.rcbuffer = &__pyx_pybuffer_indexer;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_sorter.rcbuffer->pybuffer, (PyObject*)__pyx_v_sorter, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 215, __pyx_L1_error)
  }
  __pyx_pybuffernd_sorter.diminfo[0].strides = __pyx_pybuffernd_sorter.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_sorter.diminfo[0].shape = __pyx_pybuffernd_sorter.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 215, __pyx_L1_error)
  }
  __pyx_pybuffernd_indexer.diminfo[0].strides = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indexer.diminfo[0].shape = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_sorter.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join._get_result_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_sorter.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF(__pyx_v_res);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+216:     if len(sorter) > 0:
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_sorter)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 216, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_1 > 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
 217:         # cython-only equivalent to
 218:         #  `res = algos.take_nd(sorter, indexer, fill_value=-1)`
+219:         res = np.empty(len(indexer), dtype=np.int64)
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 219, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 219, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_indexer)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 219, __pyx_L1_error)
    __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 219, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 219, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 219, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 219, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 219, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dtype, __pyx_t_7) < 0) __PYX_ERR(0, 219, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 219, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_res = __pyx_t_7;
    __pyx_t_7 = 0;
+220:         take_1d_int64_int64(sorter, indexer, res, -1)
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_take_1d_int64_int64); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 220, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = NULL;
    __pyx_t_8 = 0;
    if (CYTHON_UNPACK_METHODS && 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_8 = 1;
      }
    }
    {
      PyObject *__pyx_callargs[5] = {__pyx_t_5, ((PyObject *)__pyx_v_sorter), ((PyObject *)__pyx_v_indexer), __pyx_v_res, __pyx_int_neg_1};
      __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_8, 4+__pyx_t_8);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 220, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 221:     else:
 222:         # length-0 case
+223:         res = np.empty(len(indexer), dtype=np.int64)
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 223, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 223, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_indexer)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 223, __pyx_L1_error)
    __pyx_t_7 = PyInt_FromSsize_t(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 223, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 223, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7);
    __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 223, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 223, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 223, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 223, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 223, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_v_res = __pyx_t_6;
    __pyx_t_6 = 0;
+224:         res[:] = -1
    if (__Pyx_PyObject_SetSlice(__pyx_v_res, __pyx_int_neg_1, 0, 0, NULL, NULL, &__pyx_slice_, 0, 0, 1) < 0) __PYX_ERR(0, 224, __pyx_L1_error)
  }
  __pyx_L3:;
/* … */
  __pyx_slice_ = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice_)) __PYX_ERR(0, 224, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_slice_);
  __Pyx_GIVEREF(__pyx_slice_);
 225: 
+226:     return res
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_res);
  __pyx_r = __pyx_v_res;
  goto __pyx_L0;
 227: 
 228: 
+229: def ffill_indexer(const int64_t[:] indexer):
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_7ffill_indexer(PyObject *__pyx_self, PyObject *__pyx_arg_indexer); /*proto*/
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_7ffill_indexer = {"ffill_indexer", (PyCFunction)__pyx_pw_6pandas_5_libs_4join_7ffill_indexer, METH_O, 0};
static PyObject *__pyx_pw_6pandas_5_libs_4join_7ffill_indexer(PyObject *__pyx_self, PyObject *__pyx_arg_indexer) {
  __Pyx_memviewslice __pyx_v_indexer = { 0, 0, { 0 }, { 0 }, { 0 } };
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ffill_indexer (wrapper)", 0);
  assert(__pyx_arg_indexer); {
    __pyx_v_indexer = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t__const__(__pyx_arg_indexer, 0); if (unlikely(!__pyx_v_indexer.memview)) __PYX_ERR(0, 229, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.ffill_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_6ffill_indexer(__pyx_self, __pyx_v_indexer);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_6ffill_indexer(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_indexer) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_n;
  PyArrayObject *__pyx_v_result = 0;
  __pyx_t_5numpy_int64_t __pyx_v_val;
  __pyx_t_5numpy_int64_t __pyx_v_last_obs;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ffill_indexer", 0);
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
/* … */
  /* function exit code */
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.ffill_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __pyx_L2:;
  __PYX_XDEC_MEMVIEW(&__pyx_v_indexer, 1);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__45 = PyTuple_Pack(7, __pyx_n_s_indexer, __pyx_n_s_indexer, __pyx_n_s_i, __pyx_n_s_n, __pyx_n_s_result, __pyx_n_s_val, __pyx_n_s_last_obs); if (unlikely(!__pyx_tuple__45)) __PYX_ERR(0, 229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__45);
  __Pyx_GIVEREF(__pyx_tuple__45);
/* … */
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 229, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_7ffill_indexer, 0, __pyx_n_s_ffill_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_1, ((PyObject *)__pyx_codeobj__46)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 229, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    #else
    __pyx_t_3 = __Pyx_CyFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_7ffill_indexer, 0, __pyx_n_s_ffill_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__46)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 229, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_3);
    #if CYTHON_COMPILING_IN_LIMITED_API
    __Pyx_INCREF(__pyx_t_3);
    if (PyModule_AddObject(__pyx_m, __pyx_k_ffill_indexer, __pyx_t_3) < 0) __PYX_ERR(0, 229, __pyx_L1_error)
    #else
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_ffill_indexer, __pyx_t_3) < 0) __PYX_ERR(0, 229, __pyx_L1_error)
    #endif
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_codeobj__46 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__45, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_ffill_indexer, 229, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__46)) __PYX_ERR(0, 229, __pyx_L1_error)
 230:     cdef:
+231:         Py_ssize_t i, n = len(indexer)
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_indexer); 
  __pyx_v_n = __pyx_t_1;
 232:         ndarray[int64_t] result
 233:         int64_t val, last_obs
 234: 
+235:     result = np.empty(n, dtype=np.int64)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 235, __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, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 235, __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, 235, __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, 235, __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, 235, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 235, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
+236:     last_obs = -1
  __pyx_v_last_obs = -1LL;
 237: 
+238:     for i in range(n):
  __pyx_t_1 = __pyx_v_n;
  __pyx_t_12 = __pyx_t_1;
  for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
    __pyx_v_i = __pyx_t_13;
+239:         val = indexer[i]
    __pyx_t_14 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_14 < 0) {
      __pyx_t_14 += __pyx_v_indexer.shape[0];
      if (unlikely(__pyx_t_14 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_14 >= __pyx_v_indexer.shape[0])) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 239, __pyx_L1_error)
    }
    __pyx_v_val = (*((__pyx_t_5numpy_int64_t const  *) ( /* dim=0 */ (__pyx_v_indexer.data + __pyx_t_14 * __pyx_v_indexer.strides[0]) )));
+240:         if val == -1:
    __pyx_t_15 = ((__pyx_v_val == -1LL) != 0);
    if (__pyx_t_15) {
/* … */
      goto __pyx_L5;
    }
+241:             result[i] = last_obs
      __pyx_t_16 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_pybuffernd_result.diminfo[0].shape;
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_result.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 241, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_last_obs;
 242:         else:
+243:             result[i] = val
    /*else*/ {
      __pyx_t_17 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_pybuffernd_result.diminfo[0].shape;
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_result.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 243, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_val;
+244:             last_obs = val
      __pyx_v_last_obs = __pyx_v_val;
    }
    __pyx_L5:;
  }
 245: 
+246:     return result
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;
 247: 
 248: 
 249: # ----------------------------------------------------------------------
 250: # left_join_indexer, inner_join_indexer, outer_join_indexer
 251: # ----------------------------------------------------------------------
 252: 
 253: ctypedef fused join_t:
 254:     float64_t
 255:     float32_t
 256:     object
 257:     int8_t
 258:     int16_t
 259:     int32_t
 260:     int64_t
 261:     uint64_t
 262: 
 263: 
 264: # Joins on ordered, unique indices
 265: 
 266: # right might contain non-unique values
 267: 
+268: @cython.wraparound(False)
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_9left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_9left_join_indexer_unique = {"left_join_indexer_unique", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pandas_5_libs_4join_9left_join_indexer_unique, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6pandas_5_libs_4join_9left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  PyObject *__pyx_v__fused_sigindex = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,&__pyx_n_s_fused_sigindex,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,&__pyx_n_s_fused_sigindex,0};
    #endif
    PyObject* values[5] = {0,0,0,0,0};
    __pyx_defaults *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self);
    values[4] = __pyx_dynamic_args->__pyx_arg__fused_sigindex;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_signatures)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 268, __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_args)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 268, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 1); __PYX_ERR(0, 268, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 268, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 2); __PYX_ERR(0, 268, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_defaults)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 268, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 3); __PYX_ERR(0, 268, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fused_sigindex);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 268, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const 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_fused_cpdef") < 0)) __PYX_ERR(0, 268, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
    __pyx_v__fused_sigindex = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, __pyx_nargs); __PYX_ERR(0, 268, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_8left_join_indexer_unique(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults, __pyx_v__fused_sigindex);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_8left_join_indexer_unique(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults, PyObject *__pyx_v__fused_sigindex) {
  PyObject *__pyx_v_search_list = 0;
  PyObject *__pyx_v_sn = 0;
  PyObject *__pyx_v_sigindex_node = 0;
  PyObject *__pyx_v_dest_sig = NULL;
  PyTypeObject *__pyx_v_ndarray = 0;
  __Pyx_memviewslice __pyx_v_memslice;
  Py_ssize_t __pyx_v_itemsize;
  int __pyx_v_dtype_signed;
  char __pyx_v_kind;
  int __pyx_v____pyx_int8_t_is_signed;
  int __pyx_v____pyx_int16_t_is_signed;
  int __pyx_v____pyx_int32_t_is_signed;
  int __pyx_v____pyx_int64_t_is_signed;
  int __pyx_v____pyx_uint64_t_is_signed;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_dtype = NULL;
  PyObject *__pyx_v_arg_base = NULL;
  PyObject *__pyx_v_sig = NULL;
  PyObject *__pyx_v_sig_series = NULL;
  PyObject *__pyx_v_sig_type = NULL;
  PyObject *__pyx_v_sigindex_matches = NULL;
  PyObject *__pyx_v_sigindex_candidates = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_v_found_matches = NULL;
  PyObject *__pyx_v_found_candidates = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer_unique", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  __pyx_v____pyx_int8_t_is_signed = (!((((__pyx_t_5numpy_int8_t)-1L) > 0) != 0));
  __pyx_v____pyx_int16_t_is_signed = (!((((__pyx_t_5numpy_int16_t)-1L) > 0) != 0));
  __pyx_v____pyx_int32_t_is_signed = (!((((__pyx_t_5numpy_int32_t)-1L) > 0) != 0));
  __pyx_v____pyx_int64_t_is_signed = (!((((__pyx_t_5numpy_int64_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 268, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 268, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 268, __pyx_L1_error)
    }
    __pyx_t_1 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 0);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 268, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_left, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (likely(__pyx_t_2)) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 268, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_left); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 268, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 268, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 268, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 268, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_dtype = __pyx_t_6;
        __pyx_t_6 = 0;
        goto __pyx_L12;
      }
      __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg); 
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 268, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_arg_base = __pyx_t_6;
        __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
        __pyx_t_2 = (__pyx_t_3 != 0);
        if (__pyx_t_2) {
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 268, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_v_dtype = __pyx_t_6;
          __pyx_t_6 = 0;
          goto __pyx_L13;
        }
        /*else*/ {
          __Pyx_INCREF(Py_None);
          __pyx_v_dtype = Py_None;
        }
        __pyx_L13:;
        goto __pyx_L12;
      }
      /*else*/ {
        __Pyx_INCREF(Py_None);
        __pyx_v_dtype = Py_None;
      }
      __pyx_L12:;
      __pyx_v_itemsize = -1L;
      __pyx_t_2 = (__pyx_v_dtype != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 268, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 268, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_itemsize = __pyx_t_5;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 268, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 268, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_kind = __pyx_t_7;
        __pyx_v_dtype_signed = (__pyx_v_kind == 'i');
        switch (__pyx_v_kind) {
          case 'i':
          case 'u':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 268, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 268, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L16_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 268, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 268, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L20_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 268, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 268, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L24_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 268, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 268, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L28_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 268, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 268, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L32_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'f':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 268, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 268, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L36_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L39_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 268, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 268, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L39_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'c':
          break;
          case 'O':
          break;
          default: break;
        }
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L42_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L42_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L46_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L46_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L50_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(void *))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L50_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_object(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_object, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L54_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L54_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L58_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L58_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L62_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L62_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L66_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L66_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L70_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L70_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v__fused_sigindex); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_5 = 0;
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
      __PYX_ERR(0, 268, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF(__pyx_t_6);
    __pyx_t_6 = __pyx_t_1;
    __pyx_t_1 = 0;
    while (1) {
      __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_9, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_10);
      if (unlikely(__pyx_t_11 == 0)) break;
      if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 268, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
      __pyx_t_1 = 0;
      if (!(likely(PyDict_CheckExact(__pyx_v__fused_sigindex))||((__pyx_v__fused_sigindex) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_v__fused_sigindex))), 0))) __PYX_ERR(0, 268, __pyx_L1_error)
      __pyx_t_1 = __pyx_v__fused_sigindex;
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_sigindex_node, ((PyObject*)__pyx_t_1));
      __pyx_t_1 = 0;
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 268, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_14 = NULL;
      __pyx_t_11 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
        __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
        if (likely(__pyx_t_14)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_14);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_13, function);
          __pyx_t_11 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_14, __pyx_kp_s__2};
        __pyx_t_12 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_11, 1+__pyx_t_11);
        __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 268, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 268, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_12 = NULL;
      __pyx_t_15 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
        __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
        if (likely(__pyx_t_12)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_12);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_13, function);
          __pyx_t_15 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_kp_s__3};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_15, 1+__pyx_t_15);
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __Pyx_XDECREF_SET(__pyx_v_sig_series, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_sig_series, 0, -1L, NULL, NULL, &__pyx_slice__4, 0, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
        __pyx_t_13 = __pyx_t_1; __Pyx_INCREF(__pyx_t_13); __pyx_t_16 = 0;
        __pyx_t_17 = NULL;
      } else {
        __pyx_t_16 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 268, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_17 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 268, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      for (;;) {
        if (likely(!__pyx_t_17)) {
          if (likely(PyList_CheckExact(__pyx_t_13))) {
            if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_13)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_1); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          } else {
            if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_1); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          }
        } else {
          __pyx_t_1 = __pyx_t_17(__pyx_t_13);
          if (unlikely(!__pyx_t_1)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 268, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_XDECREF_SET(__pyx_v_sig_type, __pyx_t_1);
        __pyx_t_1 = 0;
        if (unlikely(__pyx_v_sigindex_node == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
          __PYX_ERR(0, 268, __pyx_L1_error)
        }
        __pyx_t_2 = (__Pyx_PyDict_ContainsTF(__pyx_v_sig_type, __pyx_v_sigindex_node, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
        __pyx_t_3 = (__pyx_t_2 != 0);
        if (__pyx_t_3) {
          __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          if (unlikely(__pyx_v_sigindex_node == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 268, __pyx_L1_error)
          }
          if (unlikely(PyDict_SetItem(__pyx_v_sigindex_node, __pyx_v_sig_type, __pyx_t_1) < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
          __Pyx_INCREF(__pyx_t_1);
          __Pyx_DECREF_SET(__pyx_v_sigindex_node, __pyx_t_1);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          goto __pyx_L78;
        }
        /*else*/ {
          if (unlikely(__pyx_v_sigindex_node == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 268, __pyx_L1_error)
          }
          __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_sigindex_node, __pyx_v_sig_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_1))), 0))) __PYX_ERR(0, 268, __pyx_L1_error)
          __Pyx_DECREF_SET(__pyx_v_sigindex_node, ((PyObject*)__pyx_t_1));
          __pyx_t_1 = 0;
        }
        __pyx_L78:;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      if (unlikely(__pyx_v_sigindex_node == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(0, 268, __pyx_L1_error)
      }
      __pyx_t_13 = __Pyx_GetItemInt(__pyx_v_sig_series, -1L, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 268, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      if (unlikely(PyDict_SetItem(__pyx_v_sigindex_node, __pyx_t_13, __pyx_v_sig) < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_sigindex_matches = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v__fused_sigindex);
  __Pyx_GIVEREF(__pyx_v__fused_sigindex);
  PyList_SET_ITEM(__pyx_t_6, 0, __pyx_v__fused_sigindex);
  __pyx_v_sigindex_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __pyx_v_dest_sig; __Pyx_INCREF(__pyx_t_6); __pyx_t_9 = 0;
  for (;;) {
    if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_6)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_13 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_9); __Pyx_INCREF(__pyx_t_13); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
    #else
    __pyx_t_13 = PySequence_ITEM(__pyx_t_6, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_13);
    __pyx_t_13 = 0;
    __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_XDECREF_SET(__pyx_v_found_matches, ((PyObject*)__pyx_t_13));
    __pyx_t_13 = 0;
    __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_XDECREF_SET(__pyx_v_found_candidates, ((PyObject*)__pyx_t_13));
    __pyx_t_13 = 0;
    __pyx_t_3 = (__pyx_v_dst_type == Py_None);
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      __pyx_t_13 = __pyx_v_sigindex_matches; __Pyx_INCREF(__pyx_t_13); __pyx_t_5 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
        if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_1))), 0))) __PYX_ERR(0, 268, __pyx_L1_error)
        __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_1));
        __pyx_t_1 = 0;
        if (unlikely(__pyx_v_sn == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
          __PYX_ERR(0, 268, __pyx_L1_error)
        }
        __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_sn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_18 = __Pyx_PyList_Extend(__pyx_v_found_matches, __pyx_t_1); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 268, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_13 = __pyx_v_sigindex_candidates; __Pyx_INCREF(__pyx_t_13); __pyx_t_5 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
        if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_1))), 0))) __PYX_ERR(0, 268, __pyx_L1_error)
        __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_1));
        __pyx_t_1 = 0;
        if (unlikely(__pyx_v_sn == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
          __PYX_ERR(0, 268, __pyx_L1_error)
        }
        __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_sn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_18 = __Pyx_PyList_Extend(__pyx_v_found_candidates, __pyx_t_1); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 268, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      goto __pyx_L81;
    }
    /*else*/ {
      __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 268, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_INCREF(__pyx_v_sigindex_matches);
      __Pyx_GIVEREF(__pyx_v_sigindex_matches);
      PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_v_sigindex_matches);
      __Pyx_INCREF(__pyx_v_sigindex_candidates);
      __Pyx_GIVEREF(__pyx_v_sigindex_candidates);
      PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_v_sigindex_candidates);
      __pyx_t_1 = __pyx_t_13; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      for (;;) {
        if (__pyx_t_5 >= 2) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_13); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
        #else
        __pyx_t_13 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 268, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        #endif
        __Pyx_XDECREF_SET(__pyx_v_search_list, ((PyObject*)__pyx_t_13));
        __pyx_t_13 = 0;
        if (unlikely(__pyx_v_search_list == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
          __PYX_ERR(0, 268, __pyx_L1_error)
        }
        __pyx_t_13 = __pyx_v_search_list; __Pyx_INCREF(__pyx_t_13); __pyx_t_16 = 0;
        for (;;) {
          if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_13)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_12 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_12); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
          #else
          __pyx_t_12 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 268, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          #endif
          if (!(likely(PyDict_CheckExact(__pyx_t_12))||((__pyx_t_12) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_12))), 0))) __PYX_ERR(0, 268, __pyx_L1_error)
          __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_12));
          __pyx_t_12 = 0;
          if (unlikely(__pyx_v_sn == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
            __PYX_ERR(0, 268, __pyx_L1_error)
          }
          __pyx_t_2 = (__Pyx_PyDict_ContainsTF(__pyx_v_dst_type, __pyx_v_sn, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 268, __pyx_L1_error)
          __pyx_t_3 = (__pyx_t_2 != 0);
          if (__pyx_t_3) {
            if (unlikely(__pyx_v_sn == Py_None)) {
              PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
              __PYX_ERR(0, 268, __pyx_L1_error)
            }
            __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_sn, __pyx_v_dst_type); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 268, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_found_matches, __pyx_t_12); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 268, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          }
        }
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L81:;
    __Pyx_INCREF(__pyx_v_found_matches);
    __Pyx_DECREF_SET(__pyx_v_sigindex_matches, __pyx_v_found_matches);
    __Pyx_INCREF(__pyx_v_found_candidates);
    __Pyx_DECREF_SET(__pyx_v_sigindex_candidates, __pyx_v_found_candidates);
    __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_found_matches) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L92_bool_binop_done;
    }
    __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_found_candidates) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L92_bool_binop_done:;
    __pyx_t_2 = ((!__pyx_t_3) != 0);
    if (__pyx_t_2) {
      goto __pyx_L80_break;
    }
  }
  __pyx_L80_break:;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_INCREF(__pyx_v_sigindex_matches);
  __pyx_v_candidates = __pyx_v_sigindex_matches;
  __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_3)) {
/* … */
  __pyx_slice__4 = PySlice_New(Py_None, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_slice__4)) __PYX_ERR(0, 268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_slice__4);
  __Pyx_GIVEREF(__pyx_slice__4);
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 268, __pyx_L1_error)
  }
  __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 268, __pyx_L1_error)
  __pyx_t_3 = ((__pyx_t_9 > 1) != 0);
  if (unlikely(__pyx_t_3)) {
  __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_No_matching_signature_found); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__5);
  __Pyx_GIVEREF(__pyx_tuple__5);
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 268, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 268, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), PyList_GET_ITEM(__pyx_v_candidates, 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_search_list);
  __Pyx_XDECREF(__pyx_v_sn);
  __Pyx_XDECREF(__pyx_v_sigindex_node);
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF((PyObject *)__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_dtype);
  __Pyx_XDECREF(__pyx_v_arg_base);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_sig_series);
  __Pyx_XDECREF(__pyx_v_sig_type);
  __Pyx_XDECREF(__pyx_v_sigindex_matches);
  __Pyx_XDECREF(__pyx_v_sigindex_candidates);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_found_matches);
  __Pyx_XDECREF(__pyx_v_found_candidates);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_29left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_29left_join_indexer_unique = {"__pyx_fuse_0left_join_indexer_unique", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_29left_join_indexer_unique, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_29left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right = { 0, 0, { 0 }, { 0 }, { 0 } };
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer_unique (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 268, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 268, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, 1); __PYX_ERR(0, 268, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "left_join_indexer_unique") < 0)) __PYX_ERR(0, 268, __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_left = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left.memview)) __PYX_ERR(0, 270, __pyx_L3_error)
    __pyx_v_right = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right.memview)) __PYX_ERR(0, 270, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 268, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_28left_join_indexer_unique(__pyx_self, __pyx_v_left, __pyx_v_right);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_28left_join_indexer_unique(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left, __Pyx_memviewslice __pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_nright;
  PyArrayObject *__pyx_v_indexer = 0;
  __pyx_t_5numpy_float64_t __pyx_v_rval;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_indexer;
  __Pyx_Buffer __pyx_pybuffer_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0left_join_indexer_unique", 0);
  __pyx_pybuffer_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_indexer.refcount = 0;
  __pyx_pybuffernd_indexer.data = NULL;
  __pyx_pybuffernd_indexer.rcbuffer = &__pyx_pybuffer_indexer;
/* … */
  /* function exit code */
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_31left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_31left_join_indexer_unique = {"__pyx_fuse_1left_join_indexer_unique", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_31left_join_indexer_unique, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_31left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right = { 0, 0, { 0 }, { 0 }, { 0 } };
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer_unique (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 268, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 268, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, 1); __PYX_ERR(0, 268, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "left_join_indexer_unique") < 0)) __PYX_ERR(0, 268, __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_left = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left.memview)) __PYX_ERR(0, 270, __pyx_L3_error)
    __pyx_v_right = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right.memview)) __PYX_ERR(0, 270, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 268, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_30left_join_indexer_unique(__pyx_self, __pyx_v_left, __pyx_v_right);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_30left_join_indexer_unique(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left, __Pyx_memviewslice __pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_nright;
  PyArrayObject *__pyx_v_indexer = 0;
  __pyx_t_5numpy_float32_t __pyx_v_rval;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_indexer;
  __Pyx_Buffer __pyx_pybuffer_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1left_join_indexer_unique", 0);
  __pyx_pybuffer_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_indexer.refcount = 0;
  __pyx_pybuffernd_indexer.data = NULL;
  __pyx_pybuffernd_indexer.rcbuffer = &__pyx_pybuffer_indexer;
/* … */
  /* function exit code */
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_33left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_33left_join_indexer_unique = {"__pyx_fuse_2left_join_indexer_unique", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_33left_join_indexer_unique, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_33left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right = { 0, 0, { 0 }, { 0 }, { 0 } };
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer_unique (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 268, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 268, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, 1); __PYX_ERR(0, 268, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "left_join_indexer_unique") < 0)) __PYX_ERR(0, 268, __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_left = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left.memview)) __PYX_ERR(0, 270, __pyx_L3_error)
    __pyx_v_right = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right.memview)) __PYX_ERR(0, 270, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 268, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_32left_join_indexer_unique(__pyx_self, __pyx_v_left, __pyx_v_right);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_32left_join_indexer_unique(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left, __Pyx_memviewslice __pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_nright;
  PyArrayObject *__pyx_v_indexer = 0;
  PyObject *__pyx_v_rval = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_indexer;
  __Pyx_Buffer __pyx_pybuffer_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2left_join_indexer_unique", 0);
  __pyx_pybuffer_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_indexer.refcount = 0;
  __pyx_pybuffernd_indexer.data = NULL;
  __pyx_pybuffernd_indexer.rcbuffer = &__pyx_pybuffer_indexer;
/* … */
  /* function exit code */
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_indexer);
  __Pyx_XDECREF(__pyx_v_rval);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_35left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_35left_join_indexer_unique = {"__pyx_fuse_3left_join_indexer_unique", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_35left_join_indexer_unique, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_35left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right = { 0, 0, { 0 }, { 0 }, { 0 } };
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer_unique (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 268, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 268, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, 1); __PYX_ERR(0, 268, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "left_join_indexer_unique") < 0)) __PYX_ERR(0, 268, __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_left = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left.memview)) __PYX_ERR(0, 270, __pyx_L3_error)
    __pyx_v_right = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right.memview)) __PYX_ERR(0, 270, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 268, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_34left_join_indexer_unique(__pyx_self, __pyx_v_left, __pyx_v_right);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_34left_join_indexer_unique(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left, __Pyx_memviewslice __pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_nright;
  PyArrayObject *__pyx_v_indexer = 0;
  __pyx_t_5numpy_int8_t __pyx_v_rval;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_indexer;
  __Pyx_Buffer __pyx_pybuffer_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3left_join_indexer_unique", 0);
  __pyx_pybuffer_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_indexer.refcount = 0;
  __pyx_pybuffernd_indexer.data = NULL;
  __pyx_pybuffernd_indexer.rcbuffer = &__pyx_pybuffer_indexer;
/* … */
  /* function exit code */
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_37left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_37left_join_indexer_unique = {"__pyx_fuse_4left_join_indexer_unique", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_37left_join_indexer_unique, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_37left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right = { 0, 0, { 0 }, { 0 }, { 0 } };
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer_unique (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 268, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 268, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, 1); __PYX_ERR(0, 268, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "left_join_indexer_unique") < 0)) __PYX_ERR(0, 268, __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_left = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left.memview)) __PYX_ERR(0, 270, __pyx_L3_error)
    __pyx_v_right = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right.memview)) __PYX_ERR(0, 270, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 268, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_36left_join_indexer_unique(__pyx_self, __pyx_v_left, __pyx_v_right);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_36left_join_indexer_unique(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left, __Pyx_memviewslice __pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_nright;
  PyArrayObject *__pyx_v_indexer = 0;
  __pyx_t_5numpy_int16_t __pyx_v_rval;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_indexer;
  __Pyx_Buffer __pyx_pybuffer_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4left_join_indexer_unique", 0);
  __pyx_pybuffer_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_indexer.refcount = 0;
  __pyx_pybuffernd_indexer.data = NULL;
  __pyx_pybuffernd_indexer.rcbuffer = &__pyx_pybuffer_indexer;
/* … */
  /* function exit code */
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_39left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_39left_join_indexer_unique = {"__pyx_fuse_5left_join_indexer_unique", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_39left_join_indexer_unique, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_39left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right = { 0, 0, { 0 }, { 0 }, { 0 } };
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer_unique (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 268, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 268, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, 1); __PYX_ERR(0, 268, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "left_join_indexer_unique") < 0)) __PYX_ERR(0, 268, __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_left = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left.memview)) __PYX_ERR(0, 270, __pyx_L3_error)
    __pyx_v_right = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right.memview)) __PYX_ERR(0, 270, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 268, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_38left_join_indexer_unique(__pyx_self, __pyx_v_left, __pyx_v_right);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_38left_join_indexer_unique(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left, __Pyx_memviewslice __pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_nright;
  PyArrayObject *__pyx_v_indexer = 0;
  __pyx_t_5numpy_int32_t __pyx_v_rval;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_indexer;
  __Pyx_Buffer __pyx_pybuffer_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5left_join_indexer_unique", 0);
  __pyx_pybuffer_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_indexer.refcount = 0;
  __pyx_pybuffernd_indexer.data = NULL;
  __pyx_pybuffernd_indexer.rcbuffer = &__pyx_pybuffer_indexer;
/* … */
  /* function exit code */
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_41left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_41left_join_indexer_unique = {"__pyx_fuse_6left_join_indexer_unique", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_41left_join_indexer_unique, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_41left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right = { 0, 0, { 0 }, { 0 }, { 0 } };
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer_unique (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 268, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 268, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, 1); __PYX_ERR(0, 268, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "left_join_indexer_unique") < 0)) __PYX_ERR(0, 268, __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_left = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left.memview)) __PYX_ERR(0, 270, __pyx_L3_error)
    __pyx_v_right = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right.memview)) __PYX_ERR(0, 270, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 268, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_40left_join_indexer_unique(__pyx_self, __pyx_v_left, __pyx_v_right);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_40left_join_indexer_unique(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left, __Pyx_memviewslice __pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_nright;
  PyArrayObject *__pyx_v_indexer = 0;
  __pyx_t_5numpy_int64_t __pyx_v_rval;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_indexer;
  __Pyx_Buffer __pyx_pybuffer_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6left_join_indexer_unique", 0);
  __pyx_pybuffer_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_indexer.refcount = 0;
  __pyx_pybuffernd_indexer.data = NULL;
  __pyx_pybuffernd_indexer.rcbuffer = &__pyx_pybuffer_indexer;
/* … */
  /* function exit code */
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_43left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_43left_join_indexer_unique = {"__pyx_fuse_7left_join_indexer_unique", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_43left_join_indexer_unique, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_43left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right = { 0, 0, { 0 }, { 0 }, { 0 } };
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer_unique (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 268, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 268, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, 1); __PYX_ERR(0, 268, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "left_join_indexer_unique") < 0)) __PYX_ERR(0, 268, __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_left = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left.memview)) __PYX_ERR(0, 270, __pyx_L3_error)
    __pyx_v_right = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right.memview)) __PYX_ERR(0, 270, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 268, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_42left_join_indexer_unique(__pyx_self, __pyx_v_left, __pyx_v_right);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_42left_join_indexer_unique(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left, __Pyx_memviewslice __pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_nright;
  PyArrayObject *__pyx_v_indexer = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_rval;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_indexer;
  __Pyx_Buffer __pyx_pybuffer_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7left_join_indexer_unique", 0);
  __pyx_pybuffer_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_indexer.refcount = 0;
  __pyx_pybuffernd_indexer.data = NULL;
  __pyx_pybuffernd_indexer.rcbuffer = &__pyx_pybuffer_indexer;
/* … */
  /* function exit code */
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
  __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_s_Function_call_with_ambiguous_arg); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(0, 268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__6);
  __Pyx_GIVEREF(__pyx_tuple__6);
/* … */
  __pyx_tuple__47 = PyTuple_Pack(9, __pyx_n_s_left, __pyx_n_s_right, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_nleft, __pyx_n_s_nright, __pyx_n_s_indexer, __pyx_n_s_lval, __pyx_n_s_rval); if (unlikely(!__pyx_tuple__47)) __PYX_ERR(0, 268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__47);
  __Pyx_GIVEREF(__pyx_tuple__47);
/* … */
    __pyx_t_3 = __Pyx_PyDict_NewPresized(8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_29left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_4, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    #else
    __pyx_t_1 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_29left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_float64_t, __pyx_t_1) < 0) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_31left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_4, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    #else
    __pyx_t_1 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_31left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_float32_t, __pyx_t_1) < 0) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_33left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_4, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    #else
    __pyx_t_1 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_33left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_object, __pyx_t_1) < 0) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_35left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_4, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    #else
    __pyx_t_1 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_35left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_int8_t, __pyx_t_1) < 0) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_37left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_4, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    #else
    __pyx_t_1 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_37left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_int16_t, __pyx_t_1) < 0) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_39left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_4, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    #else
    __pyx_t_1 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_39left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_int32_t, __pyx_t_1) < 0) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_41left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_4, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    #else
    __pyx_t_1 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_41left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_int64_t, __pyx_t_1) < 0) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_43left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_4, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    #else
    __pyx_t_1 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_43left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_uint64_t, __pyx_t_1) < 0) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __pyx_FusedFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_9left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_4, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    #else
    __pyx_t_1 = __pyx_FusedFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_9left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_1);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults), 1)) __PYX_ERR(0, 268, __pyx_L1_error)
    __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 268, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_t_1)->__pyx_arg__fused_sigindex = __pyx_t_4;
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
    ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
    __Pyx_GIVEREF(__pyx_t_3);
    #if CYTHON_COMPILING_IN_LIMITED_API
    __Pyx_INCREF(__pyx_t_1);
    if (PyModule_AddObject(__pyx_m, __pyx_k_left_join_indexer_unique, __pyx_t_1) < 0) __PYX_ERR(0, 268, __pyx_L1_error)
    #else
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_left_join_indexer_unique, __pyx_t_1) < 0) __PYX_ERR(0, 268, __pyx_L1_error)
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_codeobj__48 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__47, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_left_join_indexer_unique, 268, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__48)) __PYX_ERR(0, 268, __pyx_L1_error)
 269: @cython.boundscheck(False)
 270: def left_join_indexer_unique(join_t[:] left, join_t[:] right):
 271:     cdef:
 272:         Py_ssize_t i, j, nleft, nright
 273:         ndarray[int64_t] indexer
 274:         join_t lval, rval
 275: 
+276:     i = 0
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
+277:     j = 0
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
+278:     nleft = len(left)
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left); 
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left); 
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left); 
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left); 
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left); 
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left); 
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left); 
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left); 
  __pyx_v_nleft = __pyx_t_1;
+279:     nright = len(right)
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right); 
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right); 
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right); 
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right); 
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right); 
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right); 
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right); 
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right); 
  __pyx_v_nright = __pyx_t_1;
 280: 
+281:     indexer = np.empty(nleft, dtype=np.int64)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_nleft); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __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, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 281, __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, 281, __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, 281, __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, 281, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_indexer.diminfo[0].strides = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indexer.diminfo[0].shape = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 281, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_nleft); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __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, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 281, __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, 281, __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, 281, __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, 281, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_indexer.diminfo[0].strides = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indexer.diminfo[0].shape = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 281, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_nleft); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __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, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 281, __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, 281, __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, 281, __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, 281, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_indexer.diminfo[0].strides = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indexer.diminfo[0].shape = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 281, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_nleft); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __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, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 281, __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, 281, __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, 281, __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, 281, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_indexer.diminfo[0].strides = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indexer.diminfo[0].shape = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 281, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_nleft); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __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, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 281, __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, 281, __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, 281, __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, 281, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_indexer.diminfo[0].strides = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indexer.diminfo[0].shape = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 281, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_nleft); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __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, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 281, __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, 281, __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, 281, __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, 281, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_indexer.diminfo[0].strides = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indexer.diminfo[0].shape = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 281, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_nleft); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __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, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 281, __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, 281, __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, 281, __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, 281, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_indexer.diminfo[0].strides = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indexer.diminfo[0].shape = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 281, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_nleft); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 281, __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, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 281, __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, 281, __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, 281, __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, 281, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_indexer.diminfo[0].strides = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indexer.diminfo[0].shape = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 281, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
+282:     while True:
  while (1) {
/* … */
  while (1) {
/* … */
  while (1) {
/* … */
  while (1) {
/* … */
  while (1) {
/* … */
  while (1) {
/* … */
  while (1) {
/* … */
  while (1) {
+283:         if i == nleft:
    __pyx_t_12 = ((__pyx_v_i == __pyx_v_nleft) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_i == __pyx_v_nleft) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_i == __pyx_v_nleft) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_i == __pyx_v_nleft) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_i == __pyx_v_nleft) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_i == __pyx_v_nleft) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_i == __pyx_v_nleft) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_i == __pyx_v_nleft) != 0);
    if (__pyx_t_12) {
/* … */
    }
+284:             break
      goto __pyx_L4_break;
/* … */
      goto __pyx_L4_break;
/* … */
      goto __pyx_L4_break;
/* … */
      goto __pyx_L4_break;
/* … */
      goto __pyx_L4_break;
/* … */
      goto __pyx_L4_break;
/* … */
      goto __pyx_L4_break;
/* … */
      goto __pyx_L4_break;
 285: 
+286:         if j == nright:
    __pyx_t_12 = ((__pyx_v_j == __pyx_v_nright) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_j == __pyx_v_nright) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_j == __pyx_v_nright) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_j == __pyx_v_nright) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_j == __pyx_v_nright) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_j == __pyx_v_nright) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_j == __pyx_v_nright) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_j == __pyx_v_nright) != 0);
    if (__pyx_t_12) {
/* … */
    }
+287:             indexer[i] = -1
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1LL;
+288:             i += 1
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
+289:             continue
      goto __pyx_L3_continue;
/* … */
      goto __pyx_L3_continue;
/* … */
      goto __pyx_L3_continue;
/* … */
      goto __pyx_L3_continue;
/* … */
      goto __pyx_L3_continue;
/* … */
      goto __pyx_L3_continue;
/* … */
      goto __pyx_L3_continue;
/* … */
      goto __pyx_L3_continue;
 290: 
+291:         rval = right[j]
    __pyx_t_14 = __pyx_v_j;
    __pyx_v_rval = (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right.data + __pyx_t_14 * __pyx_v_right.strides[0]) )));
/* … */
    __pyx_t_14 = __pyx_v_j;
    __pyx_v_rval = (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right.data + __pyx_t_14 * __pyx_v_right.strides[0]) )));
/* … */
    __pyx_t_14 = __pyx_v_j;
    __pyx_t_6 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right.data + __pyx_t_14 * __pyx_v_right.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_6);
    __Pyx_XDECREF_SET(__pyx_v_rval, __pyx_t_6);
    __pyx_t_6 = 0;
/* … */
    __pyx_t_14 = __pyx_v_j;
    __pyx_v_rval = (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right.data + __pyx_t_14 * __pyx_v_right.strides[0]) )));
/* … */
    __pyx_t_14 = __pyx_v_j;
    __pyx_v_rval = (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right.data + __pyx_t_14 * __pyx_v_right.strides[0]) )));
/* … */
    __pyx_t_14 = __pyx_v_j;
    __pyx_v_rval = (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right.data + __pyx_t_14 * __pyx_v_right.strides[0]) )));
/* … */
    __pyx_t_14 = __pyx_v_j;
    __pyx_v_rval = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right.data + __pyx_t_14 * __pyx_v_right.strides[0]) )));
/* … */
    __pyx_t_14 = __pyx_v_j;
    __pyx_v_rval = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right.data + __pyx_t_14 * __pyx_v_right.strides[0]) )));
 292: 
+293:         while i < nleft - 1 and left[i] == rval:
    while (1) {
      __pyx_t_15 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
      if (__pyx_t_15) {
      } else {
        __pyx_t_12 = __pyx_t_15;
        goto __pyx_L9_bool_binop_done;
      }
      __pyx_t_16 = __pyx_v_i;
      __pyx_t_15 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_16 * __pyx_v_left.strides[0]) ))) == __pyx_v_rval) != 0);
      __pyx_t_12 = __pyx_t_15;
      __pyx_L9_bool_binop_done:;
      if (!__pyx_t_12) break;
/* … */
    while (1) {
      __pyx_t_15 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
      if (__pyx_t_15) {
      } else {
        __pyx_t_12 = __pyx_t_15;
        goto __pyx_L9_bool_binop_done;
      }
      __pyx_t_16 = __pyx_v_i;
      __pyx_t_15 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_16 * __pyx_v_left.strides[0]) ))) == __pyx_v_rval) != 0);
      __pyx_t_12 = __pyx_t_15;
      __pyx_L9_bool_binop_done:;
      if (!__pyx_t_12) break;
/* … */
    while (1) {
      __pyx_t_15 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
      if (__pyx_t_15) {
      } else {
        __pyx_t_12 = __pyx_t_15;
        goto __pyx_L9_bool_binop_done;
      }
      __pyx_t_16 = __pyx_v_i;
      __pyx_t_6 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_16 * __pyx_v_left.strides[0]) ));
      __Pyx_INCREF((PyObject*)__pyx_t_6);
      __pyx_t_2 = PyObject_RichCompare(__pyx_t_6, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 293, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 293, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_12 = __pyx_t_15;
      __pyx_L9_bool_binop_done:;
      if (!__pyx_t_12) break;
/* … */
    while (1) {
      __pyx_t_15 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
      if (__pyx_t_15) {
      } else {
        __pyx_t_12 = __pyx_t_15;
        goto __pyx_L9_bool_binop_done;
      }
      __pyx_t_16 = __pyx_v_i;
      __pyx_t_15 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_16 * __pyx_v_left.strides[0]) ))) == __pyx_v_rval) != 0);
      __pyx_t_12 = __pyx_t_15;
      __pyx_L9_bool_binop_done:;
      if (!__pyx_t_12) break;
/* … */
    while (1) {
      __pyx_t_15 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
      if (__pyx_t_15) {
      } else {
        __pyx_t_12 = __pyx_t_15;
        goto __pyx_L9_bool_binop_done;
      }
      __pyx_t_16 = __pyx_v_i;
      __pyx_t_15 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_16 * __pyx_v_left.strides[0]) ))) == __pyx_v_rval) != 0);
      __pyx_t_12 = __pyx_t_15;
      __pyx_L9_bool_binop_done:;
      if (!__pyx_t_12) break;
/* … */
    while (1) {
      __pyx_t_15 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
      if (__pyx_t_15) {
      } else {
        __pyx_t_12 = __pyx_t_15;
        goto __pyx_L9_bool_binop_done;
      }
      __pyx_t_16 = __pyx_v_i;
      __pyx_t_15 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_16 * __pyx_v_left.strides[0]) ))) == __pyx_v_rval) != 0);
      __pyx_t_12 = __pyx_t_15;
      __pyx_L9_bool_binop_done:;
      if (!__pyx_t_12) break;
/* … */
    while (1) {
      __pyx_t_15 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
      if (__pyx_t_15) {
      } else {
        __pyx_t_12 = __pyx_t_15;
        goto __pyx_L9_bool_binop_done;
      }
      __pyx_t_16 = __pyx_v_i;
      __pyx_t_15 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_16 * __pyx_v_left.strides[0]) ))) == __pyx_v_rval) != 0);
      __pyx_t_12 = __pyx_t_15;
      __pyx_L9_bool_binop_done:;
      if (!__pyx_t_12) break;
/* … */
    while (1) {
      __pyx_t_15 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
      if (__pyx_t_15) {
      } else {
        __pyx_t_12 = __pyx_t_15;
        goto __pyx_L9_bool_binop_done;
      }
      __pyx_t_16 = __pyx_v_i;
      __pyx_t_15 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_16 * __pyx_v_left.strides[0]) ))) == __pyx_v_rval) != 0);
      __pyx_t_12 = __pyx_t_15;
      __pyx_L9_bool_binop_done:;
      if (!__pyx_t_12) break;
+294:             indexer[i] = j
      __pyx_t_17 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_17 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_17 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_17 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_17 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_17 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_17 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_17 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
+295:             i += 1
      __pyx_v_i = (__pyx_v_i + 1);
    }
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
 296: 
+297:         if left[i] == right[j]:
    __pyx_t_18 = __pyx_v_i;
    __pyx_t_19 = __pyx_v_j;
    __pyx_t_12 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_18 * __pyx_v_left.strides[0]) ))) == (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right.data + __pyx_t_19 * __pyx_v_right.strides[0]) )))) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_18 = __pyx_v_i;
    __pyx_t_19 = __pyx_v_j;
    __pyx_t_12 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_18 * __pyx_v_left.strides[0]) ))) == (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right.data + __pyx_t_19 * __pyx_v_right.strides[0]) )))) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_18 = __pyx_v_i;
    __pyx_t_2 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_18 * __pyx_v_left.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_2);
    __pyx_t_19 = __pyx_v_j;
    __pyx_t_6 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right.data + __pyx_t_19 * __pyx_v_right.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_6);
    __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 297, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 297, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_18 = __pyx_v_i;
    __pyx_t_19 = __pyx_v_j;
    __pyx_t_12 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_18 * __pyx_v_left.strides[0]) ))) == (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right.data + __pyx_t_19 * __pyx_v_right.strides[0]) )))) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_18 = __pyx_v_i;
    __pyx_t_19 = __pyx_v_j;
    __pyx_t_12 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_18 * __pyx_v_left.strides[0]) ))) == (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right.data + __pyx_t_19 * __pyx_v_right.strides[0]) )))) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_18 = __pyx_v_i;
    __pyx_t_19 = __pyx_v_j;
    __pyx_t_12 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_18 * __pyx_v_left.strides[0]) ))) == (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right.data + __pyx_t_19 * __pyx_v_right.strides[0]) )))) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_18 = __pyx_v_i;
    __pyx_t_19 = __pyx_v_j;
    __pyx_t_12 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_18 * __pyx_v_left.strides[0]) ))) == (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right.data + __pyx_t_19 * __pyx_v_right.strides[0]) )))) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_18 = __pyx_v_i;
    __pyx_t_19 = __pyx_v_j;
    __pyx_t_12 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_18 * __pyx_v_left.strides[0]) ))) == (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right.data + __pyx_t_19 * __pyx_v_right.strides[0]) )))) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
+298:             indexer[i] = j
      __pyx_t_20 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_20 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_20 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_20 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_20 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_20 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_20 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_20 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
+299:             i += 1
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
+300:             while i < nleft - 1 and left[i] == rval:
      while (1) {
        __pyx_t_15 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_15) {
        } else {
          __pyx_t_12 = __pyx_t_15;
          goto __pyx_L14_bool_binop_done;
        }
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_15 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_21 * __pyx_v_left.strides[0]) ))) == __pyx_v_rval) != 0);
        __pyx_t_12 = __pyx_t_15;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_12) break;
/* … */
      while (1) {
        __pyx_t_15 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_15) {
        } else {
          __pyx_t_12 = __pyx_t_15;
          goto __pyx_L14_bool_binop_done;
        }
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_15 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_21 * __pyx_v_left.strides[0]) ))) == __pyx_v_rval) != 0);
        __pyx_t_12 = __pyx_t_15;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_12) break;
/* … */
      while (1) {
        __pyx_t_15 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_15) {
        } else {
          __pyx_t_12 = __pyx_t_15;
          goto __pyx_L14_bool_binop_done;
        }
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_4 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_21 * __pyx_v_left.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_4);
        __pyx_t_6 = PyObject_RichCompare(__pyx_t_4, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 300, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 300, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_12 = __pyx_t_15;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_12) break;
/* … */
      while (1) {
        __pyx_t_15 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_15) {
        } else {
          __pyx_t_12 = __pyx_t_15;
          goto __pyx_L14_bool_binop_done;
        }
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_15 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_21 * __pyx_v_left.strides[0]) ))) == __pyx_v_rval) != 0);
        __pyx_t_12 = __pyx_t_15;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_12) break;
/* … */
      while (1) {
        __pyx_t_15 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_15) {
        } else {
          __pyx_t_12 = __pyx_t_15;
          goto __pyx_L14_bool_binop_done;
        }
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_15 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_21 * __pyx_v_left.strides[0]) ))) == __pyx_v_rval) != 0);
        __pyx_t_12 = __pyx_t_15;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_12) break;
/* … */
      while (1) {
        __pyx_t_15 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_15) {
        } else {
          __pyx_t_12 = __pyx_t_15;
          goto __pyx_L14_bool_binop_done;
        }
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_15 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_21 * __pyx_v_left.strides[0]) ))) == __pyx_v_rval) != 0);
        __pyx_t_12 = __pyx_t_15;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_12) break;
/* … */
      while (1) {
        __pyx_t_15 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_15) {
        } else {
          __pyx_t_12 = __pyx_t_15;
          goto __pyx_L14_bool_binop_done;
        }
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_15 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_21 * __pyx_v_left.strides[0]) ))) == __pyx_v_rval) != 0);
        __pyx_t_12 = __pyx_t_15;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_12) break;
/* … */
      while (1) {
        __pyx_t_15 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_15) {
        } else {
          __pyx_t_12 = __pyx_t_15;
          goto __pyx_L14_bool_binop_done;
        }
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_15 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_21 * __pyx_v_left.strides[0]) ))) == __pyx_v_rval) != 0);
        __pyx_t_12 = __pyx_t_15;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_12) break;
+301:                 indexer[i] = j
        __pyx_t_22 = __pyx_v_i;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_22 = __pyx_v_i;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_22 = __pyx_v_i;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_22 = __pyx_v_i;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_22 = __pyx_v_i;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_22 = __pyx_v_i;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_22 = __pyx_v_i;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_22 = __pyx_v_i;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
+302:                 i += 1
        __pyx_v_i = (__pyx_v_i + 1);
      }
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
      }
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
      }
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
      }
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
      }
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
      }
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
      }
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
      }
+303:             j += 1
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
+304:         elif left[i] > rval:
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_12 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_23 * __pyx_v_left.strides[0]) ))) > __pyx_v_rval) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_12 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_23 * __pyx_v_left.strides[0]) ))) > __pyx_v_rval) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_6 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_23 * __pyx_v_left.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_6);
    __pyx_t_4 = PyObject_RichCompare(__pyx_t_6, __pyx_v_rval, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 304, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 304, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_12 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_23 * __pyx_v_left.strides[0]) ))) > __pyx_v_rval) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_12 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_23 * __pyx_v_left.strides[0]) ))) > __pyx_v_rval) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_12 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_23 * __pyx_v_left.strides[0]) ))) > __pyx_v_rval) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_12 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_23 * __pyx_v_left.strides[0]) ))) > __pyx_v_rval) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_12 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left.data + __pyx_t_23 * __pyx_v_left.strides[0]) ))) > __pyx_v_rval) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
+305:             indexer[i] = -1
      __pyx_t_24 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_24 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_24 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_24 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_24 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_24 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_24 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_24 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1LL;
+306:             j += 1
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
 307:         else:
+308:             indexer[i] = -1
    /*else*/ {
      __pyx_t_25 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1LL;
/* … */
    /*else*/ {
      __pyx_t_25 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1LL;
/* … */
    /*else*/ {
      __pyx_t_25 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1LL;
/* … */
    /*else*/ {
      __pyx_t_25 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1LL;
/* … */
    /*else*/ {
      __pyx_t_25 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1LL;
/* … */
    /*else*/ {
      __pyx_t_25 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1LL;
/* … */
    /*else*/ {
      __pyx_t_25 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1LL;
/* … */
    /*else*/ {
      __pyx_t_25 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1LL;
+309:             i += 1
      __pyx_v_i = (__pyx_v_i + 1);
    }
    __pyx_L11:;
    __pyx_L3_continue:;
  }
  __pyx_L4_break:;
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
    __pyx_L11:;
    __pyx_L3_continue:;
  }
  __pyx_L4_break:;
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
    __pyx_L11:;
    __pyx_L3_continue:;
  }
  __pyx_L4_break:;
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
    __pyx_L11:;
    __pyx_L3_continue:;
  }
  __pyx_L4_break:;
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
    __pyx_L11:;
    __pyx_L3_continue:;
  }
  __pyx_L4_break:;
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
    __pyx_L11:;
    __pyx_L3_continue:;
  }
  __pyx_L4_break:;
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
    __pyx_L11:;
    __pyx_L3_continue:;
  }
  __pyx_L4_break:;
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
    __pyx_L11:;
    __pyx_L3_continue:;
  }
  __pyx_L4_break:;
+310:     return indexer
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_indexer);
  __pyx_r = ((PyObject *)__pyx_v_indexer);
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_indexer);
  __pyx_r = ((PyObject *)__pyx_v_indexer);
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_indexer);
  __pyx_r = ((PyObject *)__pyx_v_indexer);
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_indexer);
  __pyx_r = ((PyObject *)__pyx_v_indexer);
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_indexer);
  __pyx_r = ((PyObject *)__pyx_v_indexer);
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_indexer);
  __pyx_r = ((PyObject *)__pyx_v_indexer);
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_indexer);
  __pyx_r = ((PyObject *)__pyx_v_indexer);
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_indexer);
  __pyx_r = ((PyObject *)__pyx_v_indexer);
  goto __pyx_L0;
 311: 
 312: 
+313: @cython.wraparound(False)
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_11left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
PyDoc_STRVAR(__pyx_doc_6pandas_5_libs_4join_10left_join_indexer, "\n    Two-pass algorithm for monotonic indexes. Handles many-to-one merges.\n    ");
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_11left_join_indexer = {"left_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pandas_5_libs_4join_11left_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_10left_join_indexer};
static PyObject *__pyx_pw_6pandas_5_libs_4join_11left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  PyObject *__pyx_v__fused_sigindex = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,&__pyx_n_s_fused_sigindex,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,&__pyx_n_s_fused_sigindex,0};
    #endif
    PyObject* values[5] = {0,0,0,0,0};
    __pyx_defaults1 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_self);
    values[4] = __pyx_dynamic_args->__pyx_arg__fused_sigindex;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_signatures)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 313, __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_args)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 313, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 1); __PYX_ERR(0, 313, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 313, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 2); __PYX_ERR(0, 313, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_defaults)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 313, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 3); __PYX_ERR(0, 313, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fused_sigindex);
          if (value) { values[4] = 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, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 313, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
    __pyx_v__fused_sigindex = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, __pyx_nargs); __PYX_ERR(0, 313, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_10left_join_indexer(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults, __pyx_v__fused_sigindex);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_10left_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults, PyObject *__pyx_v__fused_sigindex) {
  PyObject *__pyx_v_search_list = 0;
  PyObject *__pyx_v_sn = 0;
  PyObject *__pyx_v_sigindex_node = 0;
  PyObject *__pyx_v_dest_sig = NULL;
  PyTypeObject *__pyx_v_ndarray = 0;
  __Pyx_memviewslice __pyx_v_memslice;
  Py_ssize_t __pyx_v_itemsize;
  int __pyx_v_dtype_signed;
  char __pyx_v_kind;
  int __pyx_v____pyx_int8_t_is_signed;
  int __pyx_v____pyx_int16_t_is_signed;
  int __pyx_v____pyx_int32_t_is_signed;
  int __pyx_v____pyx_int64_t_is_signed;
  int __pyx_v____pyx_uint64_t_is_signed;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_dtype = NULL;
  PyObject *__pyx_v_arg_base = NULL;
  PyObject *__pyx_v_sig = NULL;
  PyObject *__pyx_v_sig_series = NULL;
  PyObject *__pyx_v_sig_type = NULL;
  PyObject *__pyx_v_sigindex_matches = NULL;
  PyObject *__pyx_v_sigindex_candidates = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_v_found_matches = NULL;
  PyObject *__pyx_v_found_candidates = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  __pyx_v____pyx_int8_t_is_signed = (!((((__pyx_t_5numpy_int8_t)-1L) > 0) != 0));
  __pyx_v____pyx_int16_t_is_signed = (!((((__pyx_t_5numpy_int16_t)-1L) > 0) != 0));
  __pyx_v____pyx_int32_t_is_signed = (!((((__pyx_t_5numpy_int32_t)-1L) > 0) != 0));
  __pyx_v____pyx_int64_t_is_signed = (!((((__pyx_t_5numpy_int64_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 313, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 313, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 313, __pyx_L1_error)
    }
    __pyx_t_1 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 0);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 313, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_left, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (likely(__pyx_t_2)) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 313, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_left); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 313, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 313, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 313, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_dtype = __pyx_t_6;
        __pyx_t_6 = 0;
        goto __pyx_L12;
      }
      __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg); 
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_arg_base = __pyx_t_6;
        __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
        __pyx_t_2 = (__pyx_t_3 != 0);
        if (__pyx_t_2) {
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_v_dtype = __pyx_t_6;
          __pyx_t_6 = 0;
          goto __pyx_L13;
        }
        /*else*/ {
          __Pyx_INCREF(Py_None);
          __pyx_v_dtype = Py_None;
        }
        __pyx_L13:;
        goto __pyx_L12;
      }
      /*else*/ {
        __Pyx_INCREF(Py_None);
        __pyx_v_dtype = Py_None;
      }
      __pyx_L12:;
      __pyx_v_itemsize = -1L;
      __pyx_t_2 = (__pyx_v_dtype != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 313, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_itemsize = __pyx_t_5;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 313, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_kind = __pyx_t_7;
        __pyx_v_dtype_signed = (__pyx_v_kind == 'i');
        switch (__pyx_v_kind) {
          case 'i':
          case 'u':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L16_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L20_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L24_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L28_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L32_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'f':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L36_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L39_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L39_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'c':
          break;
          case 'O':
          break;
          default: break;
        }
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L42_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L42_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L46_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L46_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L50_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(void *))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L50_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_object(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_object, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L54_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L54_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L58_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L58_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L62_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L62_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L66_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L66_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L70_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L70_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v__fused_sigindex); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_5 = 0;
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
      __PYX_ERR(0, 313, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF(__pyx_t_6);
    __pyx_t_6 = __pyx_t_1;
    __pyx_t_1 = 0;
    while (1) {
      __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_9, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_10);
      if (unlikely(__pyx_t_11 == 0)) break;
      if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 313, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
      __pyx_t_1 = 0;
      if (!(likely(PyDict_CheckExact(__pyx_v__fused_sigindex))||((__pyx_v__fused_sigindex) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_v__fused_sigindex))), 0))) __PYX_ERR(0, 313, __pyx_L1_error)
      __pyx_t_1 = __pyx_v__fused_sigindex;
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_sigindex_node, ((PyObject*)__pyx_t_1));
      __pyx_t_1 = 0;
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 313, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_14 = NULL;
      __pyx_t_11 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
        __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
        if (likely(__pyx_t_14)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_14);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_13, function);
          __pyx_t_11 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_14, __pyx_kp_s__2};
        __pyx_t_12 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_11, 1+__pyx_t_11);
        __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 313, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 313, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_12 = NULL;
      __pyx_t_15 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
        __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
        if (likely(__pyx_t_12)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_12);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_13, function);
          __pyx_t_15 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_kp_s__3};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_15, 1+__pyx_t_15);
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 313, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __Pyx_XDECREF_SET(__pyx_v_sig_series, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_sig_series, 0, -1L, NULL, NULL, &__pyx_slice__4, 0, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 313, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
        __pyx_t_13 = __pyx_t_1; __Pyx_INCREF(__pyx_t_13); __pyx_t_16 = 0;
        __pyx_t_17 = NULL;
      } else {
        __pyx_t_16 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 313, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_17 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 313, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      for (;;) {
        if (likely(!__pyx_t_17)) {
          if (likely(PyList_CheckExact(__pyx_t_13))) {
            if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_13)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_1); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 313, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          } else {
            if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_1); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 313, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          }
        } else {
          __pyx_t_1 = __pyx_t_17(__pyx_t_13);
          if (unlikely(!__pyx_t_1)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 313, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_XDECREF_SET(__pyx_v_sig_type, __pyx_t_1);
        __pyx_t_1 = 0;
        if (unlikely(__pyx_v_sigindex_node == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
          __PYX_ERR(0, 313, __pyx_L1_error)
        }
        __pyx_t_2 = (__Pyx_PyDict_ContainsTF(__pyx_v_sig_type, __pyx_v_sigindex_node, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
        __pyx_t_3 = (__pyx_t_2 != 0);
        if (__pyx_t_3) {
          __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          if (unlikely(__pyx_v_sigindex_node == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 313, __pyx_L1_error)
          }
          if (unlikely(PyDict_SetItem(__pyx_v_sigindex_node, __pyx_v_sig_type, __pyx_t_1) < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_INCREF(__pyx_t_1);
          __Pyx_DECREF_SET(__pyx_v_sigindex_node, __pyx_t_1);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          goto __pyx_L78;
        }
        /*else*/ {
          if (unlikely(__pyx_v_sigindex_node == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 313, __pyx_L1_error)
          }
          __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_sigindex_node, __pyx_v_sig_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_1))), 0))) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_DECREF_SET(__pyx_v_sigindex_node, ((PyObject*)__pyx_t_1));
          __pyx_t_1 = 0;
        }
        __pyx_L78:;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      if (unlikely(__pyx_v_sigindex_node == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(0, 313, __pyx_L1_error)
      }
      __pyx_t_13 = __Pyx_GetItemInt(__pyx_v_sig_series, -1L, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 313, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      if (unlikely(PyDict_SetItem(__pyx_v_sigindex_node, __pyx_t_13, __pyx_v_sig) < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_sigindex_matches = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v__fused_sigindex);
  __Pyx_GIVEREF(__pyx_v__fused_sigindex);
  PyList_SET_ITEM(__pyx_t_6, 0, __pyx_v__fused_sigindex);
  __pyx_v_sigindex_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __pyx_v_dest_sig; __Pyx_INCREF(__pyx_t_6); __pyx_t_9 = 0;
  for (;;) {
    if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_6)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_13 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_9); __Pyx_INCREF(__pyx_t_13); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
    #else
    __pyx_t_13 = PySequence_ITEM(__pyx_t_6, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_13);
    __pyx_t_13 = 0;
    __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_XDECREF_SET(__pyx_v_found_matches, ((PyObject*)__pyx_t_13));
    __pyx_t_13 = 0;
    __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_XDECREF_SET(__pyx_v_found_candidates, ((PyObject*)__pyx_t_13));
    __pyx_t_13 = 0;
    __pyx_t_3 = (__pyx_v_dst_type == Py_None);
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      __pyx_t_13 = __pyx_v_sigindex_matches; __Pyx_INCREF(__pyx_t_13); __pyx_t_5 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 313, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
        if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_1))), 0))) __PYX_ERR(0, 313, __pyx_L1_error)
        __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_1));
        __pyx_t_1 = 0;
        if (unlikely(__pyx_v_sn == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
          __PYX_ERR(0, 313, __pyx_L1_error)
        }
        __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_sn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 313, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_18 = __Pyx_PyList_Extend(__pyx_v_found_matches, __pyx_t_1); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 313, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_13 = __pyx_v_sigindex_candidates; __Pyx_INCREF(__pyx_t_13); __pyx_t_5 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 313, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
        if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_1))), 0))) __PYX_ERR(0, 313, __pyx_L1_error)
        __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_1));
        __pyx_t_1 = 0;
        if (unlikely(__pyx_v_sn == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
          __PYX_ERR(0, 313, __pyx_L1_error)
        }
        __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_sn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 313, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_18 = __Pyx_PyList_Extend(__pyx_v_found_candidates, __pyx_t_1); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 313, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      goto __pyx_L81;
    }
    /*else*/ {
      __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 313, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_INCREF(__pyx_v_sigindex_matches);
      __Pyx_GIVEREF(__pyx_v_sigindex_matches);
      PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_v_sigindex_matches);
      __Pyx_INCREF(__pyx_v_sigindex_candidates);
      __Pyx_GIVEREF(__pyx_v_sigindex_candidates);
      PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_v_sigindex_candidates);
      __pyx_t_1 = __pyx_t_13; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      for (;;) {
        if (__pyx_t_5 >= 2) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_13); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
        #else
        __pyx_t_13 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 313, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        #endif
        __Pyx_XDECREF_SET(__pyx_v_search_list, ((PyObject*)__pyx_t_13));
        __pyx_t_13 = 0;
        if (unlikely(__pyx_v_search_list == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
          __PYX_ERR(0, 313, __pyx_L1_error)
        }
        __pyx_t_13 = __pyx_v_search_list; __Pyx_INCREF(__pyx_t_13); __pyx_t_16 = 0;
        for (;;) {
          if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_13)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_12 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_12); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
          #else
          __pyx_t_12 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          #endif
          if (!(likely(PyDict_CheckExact(__pyx_t_12))||((__pyx_t_12) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_12))), 0))) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_12));
          __pyx_t_12 = 0;
          if (unlikely(__pyx_v_sn == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
            __PYX_ERR(0, 313, __pyx_L1_error)
          }
          __pyx_t_2 = (__Pyx_PyDict_ContainsTF(__pyx_v_dst_type, __pyx_v_sn, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
          __pyx_t_3 = (__pyx_t_2 != 0);
          if (__pyx_t_3) {
            if (unlikely(__pyx_v_sn == Py_None)) {
              PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
              __PYX_ERR(0, 313, __pyx_L1_error)
            }
            __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_sn, __pyx_v_dst_type); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 313, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_found_matches, __pyx_t_12); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 313, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          }
        }
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L81:;
    __Pyx_INCREF(__pyx_v_found_matches);
    __Pyx_DECREF_SET(__pyx_v_sigindex_matches, __pyx_v_found_matches);
    __Pyx_INCREF(__pyx_v_found_candidates);
    __Pyx_DECREF_SET(__pyx_v_sigindex_candidates, __pyx_v_found_candidates);
    __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_found_matches) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L92_bool_binop_done;
    }
    __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_found_candidates) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L92_bool_binop_done:;
    __pyx_t_2 = ((!__pyx_t_3) != 0);
    if (__pyx_t_2) {
      goto __pyx_L80_break;
    }
  }
  __pyx_L80_break:;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_INCREF(__pyx_v_sigindex_matches);
  __pyx_v_candidates = __pyx_v_sigindex_matches;
  __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_3)) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 313, __pyx_L1_error)
  }
  __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 313, __pyx_L1_error)
  __pyx_t_3 = ((__pyx_t_9 > 1) != 0);
  if (unlikely(__pyx_t_3)) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 313, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 313, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), PyList_GET_ITEM(__pyx_v_candidates, 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_search_list);
  __Pyx_XDECREF(__pyx_v_sn);
  __Pyx_XDECREF(__pyx_v_sigindex_node);
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF((PyObject *)__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_dtype);
  __Pyx_XDECREF(__pyx_v_arg_base);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_sig_series);
  __Pyx_XDECREF(__pyx_v_sig_type);
  __Pyx_XDECREF(__pyx_v_sigindex_matches);
  __Pyx_XDECREF(__pyx_v_sigindex_candidates);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_found_matches);
  __Pyx_XDECREF(__pyx_v_found_candidates);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_47left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_47left_join_indexer = {"__pyx_fuse_0left_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_47left_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_10left_join_indexer};
static PyObject *__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_47left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 313, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 313, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, 1); __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, "left_join_indexer") < 0)) __PYX_ERR(0, 313, __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_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 313, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 315, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 315, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_46left_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_46left_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_float64_t __pyx_v_lval;
  __pyx_t_5numpy_float64_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0left_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 313, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 313, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_49left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_49left_join_indexer = {"__pyx_fuse_1left_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_49left_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_10left_join_indexer};
static PyObject *__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_49left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 313, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 313, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, 1); __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, "left_join_indexer") < 0)) __PYX_ERR(0, 313, __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_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 313, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 315, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 315, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_48left_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_48left_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_float32_t __pyx_v_lval;
  __pyx_t_5numpy_float32_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1left_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 313, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 313, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_51left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_51left_join_indexer = {"__pyx_fuse_2left_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_51left_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_10left_join_indexer};
static PyObject *__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_51left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 313, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 313, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, 1); __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, "left_join_indexer") < 0)) __PYX_ERR(0, 313, __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_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 313, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 315, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 315, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_50left_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_50left_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  PyObject *__pyx_v_lval = 0;
  PyObject *__pyx_v_rval = 0;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2left_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_object, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 313, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_object, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 313, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF(__pyx_v_lval);
  __Pyx_XDECREF(__pyx_v_rval);
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_53left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_53left_join_indexer = {"__pyx_fuse_3left_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_53left_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_10left_join_indexer};
static PyObject *__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_53left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 313, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 313, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, 1); __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, "left_join_indexer") < 0)) __PYX_ERR(0, 313, __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_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 313, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 315, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 315, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_52left_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_52left_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_int8_t __pyx_v_lval;
  __pyx_t_5numpy_int8_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3left_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 313, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 313, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_55left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_55left_join_indexer = {"__pyx_fuse_4left_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_55left_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_10left_join_indexer};
static PyObject *__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_55left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 313, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 313, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, 1); __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, "left_join_indexer") < 0)) __PYX_ERR(0, 313, __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_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 313, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 315, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 315, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_54left_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_54left_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_int16_t __pyx_v_lval;
  __pyx_t_5numpy_int16_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4left_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int16_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 313, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int16_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 313, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_57left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_57left_join_indexer = {"__pyx_fuse_5left_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_57left_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_10left_join_indexer};
static PyObject *__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_57left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 313, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 313, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, 1); __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, "left_join_indexer") < 0)) __PYX_ERR(0, 313, __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_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 313, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 315, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 315, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_56left_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_56left_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_int32_t __pyx_v_lval;
  __pyx_t_5numpy_int32_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5left_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 313, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 313, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_59left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_59left_join_indexer = {"__pyx_fuse_6left_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_59left_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_10left_join_indexer};
static PyObject *__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_59left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 313, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 313, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, 1); __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, "left_join_indexer") < 0)) __PYX_ERR(0, 313, __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_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 313, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 315, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 315, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_58left_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_58left_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_int64_t __pyx_v_lval;
  __pyx_t_5numpy_int64_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6left_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 313, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 313, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_61left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_61left_join_indexer = {"__pyx_fuse_7left_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_61left_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_10left_join_indexer};
static PyObject *__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_61left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 313, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 313, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, 1); __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, "left_join_indexer") < 0)) __PYX_ERR(0, 313, __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_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 313, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 315, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 315, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_60left_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_60left_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_uint64_t __pyx_v_lval;
  __pyx_t_5numpy_uint64_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7left_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 313, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 313, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__49 = PyTuple_Pack(13, __pyx_n_s_left, __pyx_n_s_right, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_k, __pyx_n_s_nright, __pyx_n_s_nleft, __pyx_n_s_count, __pyx_n_s_lval, __pyx_n_s_rval, __pyx_n_s_lindexer, __pyx_n_s_rindexer, __pyx_n_s_result); if (unlikely(!__pyx_tuple__49)) __PYX_ERR(0, 313, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__49);
  __Pyx_GIVEREF(__pyx_tuple__49);
/* … */
    __pyx_t_4 = __Pyx_PyDict_NewPresized(8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_47left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_6, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    #else
    __pyx_t_5 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_47left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 313, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_float64_t, __pyx_t_5) < 0) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_49left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_6, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    #else
    __pyx_t_5 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_49left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 313, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_float32_t, __pyx_t_5) < 0) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_51left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_6, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    #else
    __pyx_t_5 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_51left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 313, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_object, __pyx_t_5) < 0) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_53left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_6, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    #else
    __pyx_t_5 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_53left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 313, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_int8_t, __pyx_t_5) < 0) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_55left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_6, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    #else
    __pyx_t_5 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_55left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 313, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_int16_t, __pyx_t_5) < 0) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_57left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_6, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    #else
    __pyx_t_5 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_57left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 313, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_int32_t, __pyx_t_5) < 0) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_59left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_6, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    #else
    __pyx_t_5 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_59left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 313, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_int64_t, __pyx_t_5) < 0) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_61left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_6, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    #else
    __pyx_t_5 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_61left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 313, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_uint64_t, __pyx_t_5) < 0) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __pyx_FusedFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_11left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_6, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    #else
    __pyx_t_5 = __pyx_FusedFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_11left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 313, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_5);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_5, sizeof(__pyx_defaults1), 1)) __PYX_ERR(0, 313, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_CyFunction_Defaults(__pyx_defaults1, __pyx_t_5)->__pyx_arg__fused_sigindex = __pyx_t_6;
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_empty_tuple);
    ((__pyx_FusedFunctionObject *) __pyx_t_5)->__signatures__ = __pyx_t_4;
    __Pyx_GIVEREF(__pyx_t_4);
    #if CYTHON_COMPILING_IN_LIMITED_API
    __Pyx_INCREF(__pyx_t_5);
    if (PyModule_AddObject(__pyx_m, __pyx_k_left_join_indexer, __pyx_t_5) < 0) __PYX_ERR(0, 313, __pyx_L1_error)
    #else
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_left_join_indexer, __pyx_t_5) < 0) __PYX_ERR(0, 313, __pyx_L1_error)
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_codeobj__50 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__49, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_left_join_indexer, 313, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__50)) __PYX_ERR(0, 313, __pyx_L1_error)
 314: @cython.boundscheck(False)
 315: def left_join_indexer(ndarray[join_t] left, ndarray[join_t] right):
 316:     """
 317:     Two-pass algorithm for monotonic indexes. Handles many-to-one merges.
 318:     """
 319:     cdef:
 320:         Py_ssize_t i, j, k, nright, nleft, count
 321:         join_t lval, rval
 322:         ndarray[int64_t] lindexer, rindexer
 323:         ndarray[join_t] result
 324: 
+325:     nleft = len(left)
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 325, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 325, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 325, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 325, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 325, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 325, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 325, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 325, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
+326:     nright = len(right)
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 326, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 326, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 326, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 326, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 326, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 326, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 326, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 326, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
 327: 
+328:     i = 0
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
+329:     j = 0
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
+330:     count = 0
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
+331:     if nleft > 0:
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
+332:         while i < nleft:
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
+333:             if j == nright:
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
+334:                 count += nleft - i
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
+335:                 break
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
 336: 
+337:             lval = left[i]
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_t_3 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_3);
      __Pyx_XDECREF_SET(__pyx_v_lval, __pyx_t_3);
      __pyx_t_3 = 0;
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
+338:             rval = right[j]
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_5 = __pyx_v_j;
      __pyx_t_3 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_right.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_3);
      __Pyx_XDECREF_SET(__pyx_v_rval, __pyx_t_3);
      __pyx_t_3 = 0;
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
 339: 
+340:             if lval == rval:
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_lval, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 340, __pyx_L1_error)
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 340, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
+341:                 count += 1
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
+342:                 if i < nleft - 1:
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
+343:                     if j < nright - 1 and right[j + 1] == rval:
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L10_bool_binop_done;
          }
          __pyx_t_6 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L10_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L9;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L10_bool_binop_done;
          }
          __pyx_t_6 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L10_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L9;
          }
/* … */
          __pyx_t_6 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_6) {
          } else {
            __pyx_t_2 = __pyx_t_6;
            goto __pyx_L10_bool_binop_done;
          }
          __pyx_t_7 = (__pyx_v_j + 1);
          __pyx_t_3 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_right.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_3);
          __pyx_t_8 = PyObject_RichCompare(__pyx_t_3, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 343, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 343, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_2 = __pyx_t_6;
          __pyx_L10_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L9;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L10_bool_binop_done;
          }
          __pyx_t_6 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L10_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L9;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L10_bool_binop_done;
          }
          __pyx_t_6 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L10_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L9;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L10_bool_binop_done;
          }
          __pyx_t_6 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L10_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L9;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L10_bool_binop_done;
          }
          __pyx_t_6 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L10_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L9;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L10_bool_binop_done;
          }
          __pyx_t_6 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L10_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L9;
          }
+344:                         j += 1
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
 345:                     else:
+346:                         i += 1
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
+347:                         if left[i] != rval:
            __pyx_t_7 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L9:;
/* … */
            __pyx_t_7 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L9:;
/* … */
            __pyx_t_9 = __pyx_v_i;
            __pyx_t_8 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_9, __pyx_pybuffernd_left.diminfo[0].strides);
            __Pyx_INCREF((PyObject*)__pyx_t_8);
            __pyx_t_3 = PyObject_RichCompare(__pyx_t_8, __pyx_v_rval, Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 347, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 347, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L9:;
/* … */
            __pyx_t_7 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L9:;
/* … */
            __pyx_t_7 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L9:;
/* … */
            __pyx_t_7 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L9:;
/* … */
            __pyx_t_7 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L9:;
/* … */
            __pyx_t_7 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L9:;
+348:                             j += 1
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
+349:                 elif j < nright - 1:
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
+350:                     j += 1
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
+351:                     if lval != right[j]:
          __pyx_t_8 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_8 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_10 = __pyx_v_j;
          __pyx_t_3 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_right.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_3);
          __pyx_t_8 = PyObject_RichCompare(__pyx_v_lval, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 351, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 351, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_8 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_8 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_8 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_8 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_8 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
+352:                         i += 1
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
 353:                 else:
 354:                     # end of the road
+355:                     break
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L8:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L8:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L8:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L8:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L8:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L8:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L8:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L8:;
+356:             elif lval < rval:
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_8 = PyObject_RichCompare(__pyx_v_lval, __pyx_v_rval, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 356, __pyx_L1_error)
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 356, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
+357:                 count += 1
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
+358:                 i += 1
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
 359:             else:
+360:                 j += 1
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L7:;
    }
    __pyx_L5_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L7:;
    }
    __pyx_L5_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L7:;
    }
    __pyx_L5_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L7:;
    }
    __pyx_L5_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L7:;
    }
    __pyx_L5_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L7:;
    }
    __pyx_L5_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L7:;
    }
    __pyx_L5_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L7:;
    }
    __pyx_L5_break:;
 361: 
 362:     # do it again now that result size is known
 363: 
+364:     lindexer = np.empty(count, dtype=np.int64)
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_int64); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_13) < 0) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_11, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 364, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 364, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_int64); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_13) < 0) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_11, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 364, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 364, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_int64); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_13) < 0) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_11, __pyx_t_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 364, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 364, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_int64); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_13) < 0) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_11, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 364, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 364, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_int64); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_13) < 0) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_11, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 364, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 364, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_int64); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_13) < 0) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_11, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 364, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 364, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_int64); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_13) < 0) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_11, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 364, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 364, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_int64); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_13) < 0) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_11, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 364, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 364, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
+365:     rindexer = np.empty(count, dtype=np.int64)
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_dtype, __pyx_t_12) < 0) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 365, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_18, __pyx_t_17, __pyx_t_16);
      }
      __pyx_t_18 = __pyx_t_17 = __pyx_t_16 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 365, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_dtype, __pyx_t_12) < 0) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 365, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_18, __pyx_t_17, __pyx_t_16);
      }
      __pyx_t_18 = __pyx_t_17 = __pyx_t_16 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 365, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_empty); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_dtype, __pyx_t_12) < 0) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 365, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_18, __pyx_t_17, __pyx_t_16);
      }
      __pyx_t_18 = __pyx_t_17 = __pyx_t_16 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 365, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_dtype, __pyx_t_12) < 0) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 365, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_18, __pyx_t_17, __pyx_t_16);
      }
      __pyx_t_18 = __pyx_t_17 = __pyx_t_16 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 365, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_dtype, __pyx_t_12) < 0) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 365, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_18, __pyx_t_17, __pyx_t_16);
      }
      __pyx_t_18 = __pyx_t_17 = __pyx_t_16 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 365, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_dtype, __pyx_t_12) < 0) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 365, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_18, __pyx_t_17, __pyx_t_16);
      }
      __pyx_t_18 = __pyx_t_17 = __pyx_t_16 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 365, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_dtype, __pyx_t_12) < 0) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 365, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_18, __pyx_t_17, __pyx_t_16);
      }
      __pyx_t_18 = __pyx_t_17 = __pyx_t_16 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 365, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_dtype, __pyx_t_12) < 0) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 365, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_18, __pyx_t_17, __pyx_t_16);
      }
      __pyx_t_18 = __pyx_t_17 = __pyx_t_16 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 365, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
+366:     result = np.empty(count, dtype=left.dtype)
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_empty); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12);
  __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 366, __pyx_L1_error)
  __pyx_t_19 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 366, __pyx_L1_error)
  }
  __pyx_t_19 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_empty); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12);
  __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 366, __pyx_L1_error)
  __pyx_t_19 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 366, __pyx_L1_error)
  }
  __pyx_t_19 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_empty); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12);
  __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 366, __pyx_L1_error)
  __pyx_t_19 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_object, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_object, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 366, __pyx_L1_error)
  }
  __pyx_t_19 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_empty); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12);
  __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 366, __pyx_L1_error)
  __pyx_t_19 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 366, __pyx_L1_error)
  }
  __pyx_t_19 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_empty); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12);
  __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 366, __pyx_L1_error)
  __pyx_t_19 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int16_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int16_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 366, __pyx_L1_error)
  }
  __pyx_t_19 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_empty); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12);
  __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 366, __pyx_L1_error)
  __pyx_t_19 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 366, __pyx_L1_error)
  }
  __pyx_t_19 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_empty); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12);
  __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 366, __pyx_L1_error)
  __pyx_t_19 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 366, __pyx_L1_error)
  }
  __pyx_t_19 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_empty); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12);
  __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 366, __pyx_L1_error)
  __pyx_t_19 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 366, __pyx_L1_error)
  }
  __pyx_t_19 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
 367: 
+368:     i = 0
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
+369:     j = 0
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
+370:     count = 0
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
+371:     if nleft > 0:
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
+372:         while i < nleft:
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
+373:             if j == nright:
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
+374:                 while i < nleft:
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
+375:                     lindexer[count] = i
          __pyx_t_20 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_20 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_20 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_20 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_20 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_20 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_20 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_20 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
+376:                     rindexer[count] = -1
          __pyx_t_21 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
          __pyx_t_21 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
          __pyx_t_21 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
          __pyx_t_21 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
          __pyx_t_21 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
          __pyx_t_21 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
          __pyx_t_21 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
          __pyx_t_21 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
+377:                     result[count] = left[i]
          __pyx_t_22 = __pyx_v_i;
          __pyx_t_23 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_22 = __pyx_v_i;
          __pyx_t_23 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_22 = __pyx_v_i;
          __pyx_t_8 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_left.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_8);
          __pyx_t_23 = __pyx_v_count;
          __pyx_t_24 = __Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_result.diminfo[0].strides);
          __Pyx_GOTREF(*__pyx_t_24);
          __Pyx_INCREF(__pyx_t_8); __Pyx_DECREF(*__pyx_t_24);
          *__pyx_t_24 = __pyx_t_8;
          __Pyx_GIVEREF(*__pyx_t_24);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
          __pyx_t_22 = __pyx_v_i;
          __pyx_t_23 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_22 = __pyx_v_i;
          __pyx_t_23 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_22 = __pyx_v_i;
          __pyx_t_23 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_22 = __pyx_v_i;
          __pyx_t_23 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_22 = __pyx_v_i;
          __pyx_t_23 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_left.diminfo[0].strides));
+378:                     i += 1
          __pyx_v_i = (__pyx_v_i + 1);
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
+379:                     count += 1
          __pyx_v_count = (__pyx_v_count + 1);
        }
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
        }
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
        }
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
        }
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
        }
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
        }
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
        }
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
        }
+380:                 break
        goto __pyx_L16_break;
/* … */
        goto __pyx_L16_break;
/* … */
        goto __pyx_L16_break;
/* … */
        goto __pyx_L16_break;
/* … */
        goto __pyx_L16_break;
/* … */
        goto __pyx_L16_break;
/* … */
        goto __pyx_L16_break;
/* … */
        goto __pyx_L16_break;
 381: 
+382:             lval = left[i]
      __pyx_t_24 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_25 = __pyx_v_i;
      __pyx_t_8 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_left.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_8);
      __Pyx_XDECREF_SET(__pyx_v_lval, __pyx_t_8);
      __pyx_t_8 = 0;
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_left.diminfo[0].strides));
+383:             rval = right[j]
      __pyx_t_25 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_25 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_26 = __pyx_v_j;
      __pyx_t_8 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_right.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_8);
      __Pyx_XDECREF_SET(__pyx_v_rval, __pyx_t_8);
      __pyx_t_8 = 0;
/* … */
      __pyx_t_25 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_25 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_25 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_25 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_25 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_right.diminfo[0].strides));
 384: 
+385:             if lval == rval:
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_8 = PyObject_RichCompare(__pyx_v_lval, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 385, __pyx_L1_error)
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 385, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
+386:                 lindexer[count] = i
        __pyx_t_26 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_26 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_27 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_26 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_26 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_26 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_26 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_26 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
+387:                 rindexer[count] = j
        __pyx_t_27 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_27 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_28 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_27 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_27 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_27 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_27 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_27 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
+388:                 result[count] = lval
        __pyx_t_28 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_28 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_29 = __pyx_v_count;
        __pyx_t_24 = __Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_29, __pyx_pybuffernd_result.diminfo[0].strides);
        __Pyx_GOTREF(*__pyx_t_24);
        __Pyx_INCREF(__pyx_v_lval); __Pyx_DECREF(*__pyx_t_24);
        *__pyx_t_24 = __pyx_v_lval;
        __Pyx_GIVEREF(*__pyx_t_24);
/* … */
        __pyx_t_28 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_28 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_28 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_28 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_28 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
+389:                 count += 1
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
+390:                 if i < nleft - 1:
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
+391:                     if j < nright - 1 and right[j + 1] == rval:
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L23_bool_binop_done;
          }
          __pyx_t_29 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_29, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L23_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L22;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L23_bool_binop_done;
          }
          __pyx_t_29 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_29, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L23_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L22;
          }
/* … */
          __pyx_t_6 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_6) {
          } else {
            __pyx_t_2 = __pyx_t_6;
            goto __pyx_L23_bool_binop_done;
          }
          __pyx_t_30 = (__pyx_v_j + 1);
          __pyx_t_8 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_8);
          __pyx_t_12 = PyObject_RichCompare(__pyx_t_8, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 391, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 391, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_2 = __pyx_t_6;
          __pyx_L23_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L22;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L23_bool_binop_done;
          }
          __pyx_t_29 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_29, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L23_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L22;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L23_bool_binop_done;
          }
          __pyx_t_29 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_29, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L23_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L22;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L23_bool_binop_done;
          }
          __pyx_t_29 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_29, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L23_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L22;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L23_bool_binop_done;
          }
          __pyx_t_29 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_29, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L23_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L22;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L23_bool_binop_done;
          }
          __pyx_t_29 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_29, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L23_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L22;
          }
+392:                         j += 1
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
 393:                     else:
+394:                         i += 1
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
+395:                         if left[i] != rval:
            __pyx_t_30 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L22:;
/* … */
            __pyx_t_30 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L22:;
/* … */
            __pyx_t_31 = __pyx_v_i;
            __pyx_t_12 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_left.diminfo[0].strides);
            __Pyx_INCREF((PyObject*)__pyx_t_12);
            __pyx_t_8 = PyObject_RichCompare(__pyx_t_12, __pyx_v_rval, Py_NE); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 395, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 395, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L22:;
/* … */
            __pyx_t_30 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L22:;
/* … */
            __pyx_t_30 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L22:;
/* … */
            __pyx_t_30 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L22:;
/* … */
            __pyx_t_30 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L22:;
/* … */
            __pyx_t_30 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L22:;
+396:                             j += 1
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
+397:                 elif j < nright - 1:
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
+398:                     j += 1
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
+399:                     if lval != right[j]:
          __pyx_t_31 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_31 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_32 = __pyx_v_j;
          __pyx_t_8 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_right.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_8);
          __pyx_t_12 = PyObject_RichCompare(__pyx_v_lval, __pyx_t_8, Py_NE); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 399, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 399, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_31 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_31 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_31 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_31 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_31 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
+400:                         i += 1
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
 401:                 else:
 402:                     # end of the road
+403:                     break
        /*else*/ {
          goto __pyx_L16_break;
        }
        __pyx_L21:;
/* … */
        /*else*/ {
          goto __pyx_L16_break;
        }
        __pyx_L21:;
/* … */
        /*else*/ {
          goto __pyx_L16_break;
        }
        __pyx_L21:;
/* … */
        /*else*/ {
          goto __pyx_L16_break;
        }
        __pyx_L21:;
/* … */
        /*else*/ {
          goto __pyx_L16_break;
        }
        __pyx_L21:;
/* … */
        /*else*/ {
          goto __pyx_L16_break;
        }
        __pyx_L21:;
/* … */
        /*else*/ {
          goto __pyx_L16_break;
        }
        __pyx_L21:;
/* … */
        /*else*/ {
          goto __pyx_L16_break;
        }
        __pyx_L21:;
+404:             elif lval < rval:
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_12 = PyObject_RichCompare(__pyx_v_lval, __pyx_v_rval, Py_LT); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 404, __pyx_L1_error)
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 404, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
+405:                 lindexer[count] = i
        __pyx_t_32 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_32 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_33 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_32 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_32 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_32 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_32 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_32 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
+406:                 rindexer[count] = -1
        __pyx_t_33 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_34 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
+407:                 result[count] = left[i]
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_35 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_35 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
        __pyx_t_35 = __pyx_v_i;
        __pyx_t_12 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_left.diminfo[0].strides);
        __Pyx_INCREF((PyObject*)__pyx_t_12);
        __pyx_t_36 = __pyx_v_count;
        __pyx_t_24 = __Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_result.diminfo[0].strides);
        __Pyx_GOTREF(*__pyx_t_24);
        __Pyx_INCREF(__pyx_t_12); __Pyx_DECREF(*__pyx_t_24);
        *__pyx_t_24 = __pyx_t_12;
        __Pyx_GIVEREF(*__pyx_t_24);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
/* … */
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_35 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_35 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_35 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_35 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_35 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_left.diminfo[0].strides));
+408:                 count += 1
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
+409:                 i += 1
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
 410:             else:
+411:                 j += 1
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L20:;
    }
    __pyx_L16_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L20:;
    }
    __pyx_L16_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L20:;
    }
    __pyx_L16_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L20:;
    }
    __pyx_L16_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L20:;
    }
    __pyx_L16_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L20:;
    }
    __pyx_L16_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L20:;
    }
    __pyx_L16_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L20:;
    }
    __pyx_L16_break:;
 412: 
+413:     return result, lindexer, rindexer
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __Pyx_GIVEREF((PyObject *)__pyx_v_result);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF((PyObject *)__pyx_v_lindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_lindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF((PyObject *)__pyx_v_rindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_rindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __Pyx_GIVEREF((PyObject *)__pyx_v_result);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF((PyObject *)__pyx_v_lindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_lindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF((PyObject *)__pyx_v_rindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_rindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_12 = PyTuple_New(3); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __Pyx_GIVEREF((PyObject *)__pyx_v_result);
  PyTuple_SET_ITEM(__pyx_t_12, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF((PyObject *)__pyx_v_lindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_lindexer);
  PyTuple_SET_ITEM(__pyx_t_12, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF((PyObject *)__pyx_v_rindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_rindexer);
  PyTuple_SET_ITEM(__pyx_t_12, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_12;
  __pyx_t_12 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __Pyx_GIVEREF((PyObject *)__pyx_v_result);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF((PyObject *)__pyx_v_lindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_lindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF((PyObject *)__pyx_v_rindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_rindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __Pyx_GIVEREF((PyObject *)__pyx_v_result);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF((PyObject *)__pyx_v_lindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_lindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF((PyObject *)__pyx_v_rindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_rindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __Pyx_GIVEREF((PyObject *)__pyx_v_result);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF((PyObject *)__pyx_v_lindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_lindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF((PyObject *)__pyx_v_rindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_rindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __Pyx_GIVEREF((PyObject *)__pyx_v_result);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF((PyObject *)__pyx_v_lindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_lindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF((PyObject *)__pyx_v_rindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_rindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __Pyx_GIVEREF((PyObject *)__pyx_v_result);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF((PyObject *)__pyx_v_lindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_lindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF((PyObject *)__pyx_v_rindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_rindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
 414: 
 415: 
+416: @cython.wraparound(False)
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_13inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
PyDoc_STRVAR(__pyx_doc_6pandas_5_libs_4join_12inner_join_indexer, "\n    Two-pass algorithm for monotonic indexes. Handles many-to-one merges.\n    ");
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_13inner_join_indexer = {"inner_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pandas_5_libs_4join_13inner_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_12inner_join_indexer};
static PyObject *__pyx_pw_6pandas_5_libs_4join_13inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  PyObject *__pyx_v__fused_sigindex = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,&__pyx_n_s_fused_sigindex,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,&__pyx_n_s_fused_sigindex,0};
    #endif
    PyObject* values[5] = {0,0,0,0,0};
    __pyx_defaults2 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_self);
    values[4] = __pyx_dynamic_args->__pyx_arg__fused_sigindex;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_signatures)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 416, __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_args)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 416, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 1); __PYX_ERR(0, 416, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 416, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 2); __PYX_ERR(0, 416, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_defaults)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 416, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 3); __PYX_ERR(0, 416, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fused_sigindex);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 416, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const 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_fused_cpdef") < 0)) __PYX_ERR(0, 416, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
    __pyx_v__fused_sigindex = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, __pyx_nargs); __PYX_ERR(0, 416, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_12inner_join_indexer(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults, __pyx_v__fused_sigindex);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_12inner_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults, PyObject *__pyx_v__fused_sigindex) {
  PyObject *__pyx_v_search_list = 0;
  PyObject *__pyx_v_sn = 0;
  PyObject *__pyx_v_sigindex_node = 0;
  PyObject *__pyx_v_dest_sig = NULL;
  PyTypeObject *__pyx_v_ndarray = 0;
  __Pyx_memviewslice __pyx_v_memslice;
  Py_ssize_t __pyx_v_itemsize;
  int __pyx_v_dtype_signed;
  char __pyx_v_kind;
  int __pyx_v____pyx_int8_t_is_signed;
  int __pyx_v____pyx_int16_t_is_signed;
  int __pyx_v____pyx_int32_t_is_signed;
  int __pyx_v____pyx_int64_t_is_signed;
  int __pyx_v____pyx_uint64_t_is_signed;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_dtype = NULL;
  PyObject *__pyx_v_arg_base = NULL;
  PyObject *__pyx_v_sig = NULL;
  PyObject *__pyx_v_sig_series = NULL;
  PyObject *__pyx_v_sig_type = NULL;
  PyObject *__pyx_v_sigindex_matches = NULL;
  PyObject *__pyx_v_sigindex_candidates = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_v_found_matches = NULL;
  PyObject *__pyx_v_found_candidates = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("inner_join_indexer", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  __pyx_v____pyx_int8_t_is_signed = (!((((__pyx_t_5numpy_int8_t)-1L) > 0) != 0));
  __pyx_v____pyx_int16_t_is_signed = (!((((__pyx_t_5numpy_int16_t)-1L) > 0) != 0));
  __pyx_v____pyx_int32_t_is_signed = (!((((__pyx_t_5numpy_int32_t)-1L) > 0) != 0));
  __pyx_v____pyx_int64_t_is_signed = (!((((__pyx_t_5numpy_int64_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 416, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 416, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 416, __pyx_L1_error)
    }
    __pyx_t_1 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 0);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 416, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_left, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (likely(__pyx_t_2)) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 416, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_left); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 416, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 416, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 416, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 416, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_dtype = __pyx_t_6;
        __pyx_t_6 = 0;
        goto __pyx_L12;
      }
      __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg); 
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 416, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_arg_base = __pyx_t_6;
        __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
        __pyx_t_2 = (__pyx_t_3 != 0);
        if (__pyx_t_2) {
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 416, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_v_dtype = __pyx_t_6;
          __pyx_t_6 = 0;
          goto __pyx_L13;
        }
        /*else*/ {
          __Pyx_INCREF(Py_None);
          __pyx_v_dtype = Py_None;
        }
        __pyx_L13:;
        goto __pyx_L12;
      }
      /*else*/ {
        __Pyx_INCREF(Py_None);
        __pyx_v_dtype = Py_None;
      }
      __pyx_L12:;
      __pyx_v_itemsize = -1L;
      __pyx_t_2 = (__pyx_v_dtype != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 416, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 416, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_itemsize = __pyx_t_5;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 416, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 416, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_kind = __pyx_t_7;
        __pyx_v_dtype_signed = (__pyx_v_kind == 'i');
        switch (__pyx_v_kind) {
          case 'i':
          case 'u':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 416, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 416, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L16_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 416, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 416, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L20_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 416, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 416, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L24_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 416, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 416, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L28_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 416, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 416, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L32_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'f':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 416, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 416, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L36_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L39_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 416, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 416, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L39_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'c':
          break;
          case 'O':
          break;
          default: break;
        }
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L42_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L42_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L46_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L46_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L50_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(void *))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L50_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_object(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_object, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L54_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L54_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L58_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L58_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L62_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L62_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L66_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L66_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L70_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L70_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v__fused_sigindex); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_5 = 0;
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
      __PYX_ERR(0, 416, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF(__pyx_t_6);
    __pyx_t_6 = __pyx_t_1;
    __pyx_t_1 = 0;
    while (1) {
      __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_9, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_10);
      if (unlikely(__pyx_t_11 == 0)) break;
      if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 416, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
      __pyx_t_1 = 0;
      if (!(likely(PyDict_CheckExact(__pyx_v__fused_sigindex))||((__pyx_v__fused_sigindex) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_v__fused_sigindex))), 0))) __PYX_ERR(0, 416, __pyx_L1_error)
      __pyx_t_1 = __pyx_v__fused_sigindex;
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_sigindex_node, ((PyObject*)__pyx_t_1));
      __pyx_t_1 = 0;
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 416, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_14 = NULL;
      __pyx_t_11 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
        __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
        if (likely(__pyx_t_14)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_14);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_13, function);
          __pyx_t_11 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_14, __pyx_kp_s__2};
        __pyx_t_12 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_11, 1+__pyx_t_11);
        __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 416, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 416, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_12 = NULL;
      __pyx_t_15 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
        __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
        if (likely(__pyx_t_12)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_12);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_13, function);
          __pyx_t_15 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_kp_s__3};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_15, 1+__pyx_t_15);
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 416, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __Pyx_XDECREF_SET(__pyx_v_sig_series, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_sig_series, 0, -1L, NULL, NULL, &__pyx_slice__4, 0, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 416, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
        __pyx_t_13 = __pyx_t_1; __Pyx_INCREF(__pyx_t_13); __pyx_t_16 = 0;
        __pyx_t_17 = NULL;
      } else {
        __pyx_t_16 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 416, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_17 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 416, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      for (;;) {
        if (likely(!__pyx_t_17)) {
          if (likely(PyList_CheckExact(__pyx_t_13))) {
            if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_13)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_1); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 416, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          } else {
            if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_1); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 416, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          }
        } else {
          __pyx_t_1 = __pyx_t_17(__pyx_t_13);
          if (unlikely(!__pyx_t_1)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 416, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_XDECREF_SET(__pyx_v_sig_type, __pyx_t_1);
        __pyx_t_1 = 0;
        if (unlikely(__pyx_v_sigindex_node == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
          __PYX_ERR(0, 416, __pyx_L1_error)
        }
        __pyx_t_2 = (__Pyx_PyDict_ContainsTF(__pyx_v_sig_type, __pyx_v_sigindex_node, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
        __pyx_t_3 = (__pyx_t_2 != 0);
        if (__pyx_t_3) {
          __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 416, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          if (unlikely(__pyx_v_sigindex_node == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 416, __pyx_L1_error)
          }
          if (unlikely(PyDict_SetItem(__pyx_v_sigindex_node, __pyx_v_sig_type, __pyx_t_1) < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
          __Pyx_INCREF(__pyx_t_1);
          __Pyx_DECREF_SET(__pyx_v_sigindex_node, __pyx_t_1);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          goto __pyx_L78;
        }
        /*else*/ {
          if (unlikely(__pyx_v_sigindex_node == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 416, __pyx_L1_error)
          }
          __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_sigindex_node, __pyx_v_sig_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 416, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_1))), 0))) __PYX_ERR(0, 416, __pyx_L1_error)
          __Pyx_DECREF_SET(__pyx_v_sigindex_node, ((PyObject*)__pyx_t_1));
          __pyx_t_1 = 0;
        }
        __pyx_L78:;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      if (unlikely(__pyx_v_sigindex_node == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(0, 416, __pyx_L1_error)
      }
      __pyx_t_13 = __Pyx_GetItemInt(__pyx_v_sig_series, -1L, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 416, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      if (unlikely(PyDict_SetItem(__pyx_v_sigindex_node, __pyx_t_13, __pyx_v_sig) < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_sigindex_matches = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v__fused_sigindex);
  __Pyx_GIVEREF(__pyx_v__fused_sigindex);
  PyList_SET_ITEM(__pyx_t_6, 0, __pyx_v__fused_sigindex);
  __pyx_v_sigindex_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __pyx_v_dest_sig; __Pyx_INCREF(__pyx_t_6); __pyx_t_9 = 0;
  for (;;) {
    if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_6)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_13 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_9); __Pyx_INCREF(__pyx_t_13); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
    #else
    __pyx_t_13 = PySequence_ITEM(__pyx_t_6, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_13);
    __pyx_t_13 = 0;
    __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_XDECREF_SET(__pyx_v_found_matches, ((PyObject*)__pyx_t_13));
    __pyx_t_13 = 0;
    __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_XDECREF_SET(__pyx_v_found_candidates, ((PyObject*)__pyx_t_13));
    __pyx_t_13 = 0;
    __pyx_t_3 = (__pyx_v_dst_type == Py_None);
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      __pyx_t_13 = __pyx_v_sigindex_matches; __Pyx_INCREF(__pyx_t_13); __pyx_t_5 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 416, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
        if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_1))), 0))) __PYX_ERR(0, 416, __pyx_L1_error)
        __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_1));
        __pyx_t_1 = 0;
        if (unlikely(__pyx_v_sn == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
          __PYX_ERR(0, 416, __pyx_L1_error)
        }
        __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_sn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 416, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_18 = __Pyx_PyList_Extend(__pyx_v_found_matches, __pyx_t_1); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 416, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_13 = __pyx_v_sigindex_candidates; __Pyx_INCREF(__pyx_t_13); __pyx_t_5 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 416, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
        if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_1))), 0))) __PYX_ERR(0, 416, __pyx_L1_error)
        __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_1));
        __pyx_t_1 = 0;
        if (unlikely(__pyx_v_sn == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
          __PYX_ERR(0, 416, __pyx_L1_error)
        }
        __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_sn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 416, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_18 = __Pyx_PyList_Extend(__pyx_v_found_candidates, __pyx_t_1); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 416, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      goto __pyx_L81;
    }
    /*else*/ {
      __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 416, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_INCREF(__pyx_v_sigindex_matches);
      __Pyx_GIVEREF(__pyx_v_sigindex_matches);
      PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_v_sigindex_matches);
      __Pyx_INCREF(__pyx_v_sigindex_candidates);
      __Pyx_GIVEREF(__pyx_v_sigindex_candidates);
      PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_v_sigindex_candidates);
      __pyx_t_1 = __pyx_t_13; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      for (;;) {
        if (__pyx_t_5 >= 2) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_13); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
        #else
        __pyx_t_13 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 416, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        #endif
        __Pyx_XDECREF_SET(__pyx_v_search_list, ((PyObject*)__pyx_t_13));
        __pyx_t_13 = 0;
        if (unlikely(__pyx_v_search_list == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
          __PYX_ERR(0, 416, __pyx_L1_error)
        }
        __pyx_t_13 = __pyx_v_search_list; __Pyx_INCREF(__pyx_t_13); __pyx_t_16 = 0;
        for (;;) {
          if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_13)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_12 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_12); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
          #else
          __pyx_t_12 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 416, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          #endif
          if (!(likely(PyDict_CheckExact(__pyx_t_12))||((__pyx_t_12) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_12))), 0))) __PYX_ERR(0, 416, __pyx_L1_error)
          __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_12));
          __pyx_t_12 = 0;
          if (unlikely(__pyx_v_sn == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
            __PYX_ERR(0, 416, __pyx_L1_error)
          }
          __pyx_t_2 = (__Pyx_PyDict_ContainsTF(__pyx_v_dst_type, __pyx_v_sn, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 416, __pyx_L1_error)
          __pyx_t_3 = (__pyx_t_2 != 0);
          if (__pyx_t_3) {
            if (unlikely(__pyx_v_sn == Py_None)) {
              PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
              __PYX_ERR(0, 416, __pyx_L1_error)
            }
            __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_sn, __pyx_v_dst_type); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 416, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_found_matches, __pyx_t_12); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 416, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          }
        }
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L81:;
    __Pyx_INCREF(__pyx_v_found_matches);
    __Pyx_DECREF_SET(__pyx_v_sigindex_matches, __pyx_v_found_matches);
    __Pyx_INCREF(__pyx_v_found_candidates);
    __Pyx_DECREF_SET(__pyx_v_sigindex_candidates, __pyx_v_found_candidates);
    __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_found_matches) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L92_bool_binop_done;
    }
    __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_found_candidates) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L92_bool_binop_done:;
    __pyx_t_2 = ((!__pyx_t_3) != 0);
    if (__pyx_t_2) {
      goto __pyx_L80_break;
    }
  }
  __pyx_L80_break:;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_INCREF(__pyx_v_sigindex_matches);
  __pyx_v_candidates = __pyx_v_sigindex_matches;
  __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_3)) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 416, __pyx_L1_error)
  }
  __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 416, __pyx_L1_error)
  __pyx_t_3 = ((__pyx_t_9 > 1) != 0);
  if (unlikely(__pyx_t_3)) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 416, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 416, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), PyList_GET_ITEM(__pyx_v_candidates, 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_search_list);
  __Pyx_XDECREF(__pyx_v_sn);
  __Pyx_XDECREF(__pyx_v_sigindex_node);
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF((PyObject *)__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_dtype);
  __Pyx_XDECREF(__pyx_v_arg_base);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_sig_series);
  __Pyx_XDECREF(__pyx_v_sig_type);
  __Pyx_XDECREF(__pyx_v_sigindex_matches);
  __Pyx_XDECREF(__pyx_v_sigindex_candidates);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_found_matches);
  __Pyx_XDECREF(__pyx_v_found_candidates);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_65inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_65inner_join_indexer = {"__pyx_fuse_0inner_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_65inner_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_12inner_join_indexer};
static PyObject *__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_65inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("inner_join_indexer (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 416, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 416, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 416, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "inner_join_indexer") < 0)) __PYX_ERR(0, 416, __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_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 416, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 418, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 418, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_64inner_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_64inner_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_float64_t __pyx_v_lval;
  __pyx_t_5numpy_float64_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0inner_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 416, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 416, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_67inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_67inner_join_indexer = {"__pyx_fuse_1inner_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_67inner_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_12inner_join_indexer};
static PyObject *__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_67inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("inner_join_indexer (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 416, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 416, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 416, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "inner_join_indexer") < 0)) __PYX_ERR(0, 416, __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_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 416, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 418, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 418, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_66inner_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_66inner_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_float32_t __pyx_v_lval;
  __pyx_t_5numpy_float32_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1inner_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 416, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 416, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_69inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_69inner_join_indexer = {"__pyx_fuse_2inner_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_69inner_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_12inner_join_indexer};
static PyObject *__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_69inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("inner_join_indexer (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 416, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 416, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 416, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "inner_join_indexer") < 0)) __PYX_ERR(0, 416, __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_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 416, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 418, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 418, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_68inner_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_68inner_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  PyObject *__pyx_v_lval = 0;
  PyObject *__pyx_v_rval = 0;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2inner_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_object, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 416, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_object, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 416, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF(__pyx_v_lval);
  __Pyx_XDECREF(__pyx_v_rval);
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_71inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_71inner_join_indexer = {"__pyx_fuse_3inner_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_71inner_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_12inner_join_indexer};
static PyObject *__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_71inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("inner_join_indexer (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 416, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 416, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 416, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "inner_join_indexer") < 0)) __PYX_ERR(0, 416, __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_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 416, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 418, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 418, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_70inner_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_70inner_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_int8_t __pyx_v_lval;
  __pyx_t_5numpy_int8_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3inner_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 416, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 416, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_73inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_73inner_join_indexer = {"__pyx_fuse_4inner_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_73inner_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_12inner_join_indexer};
static PyObject *__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_73inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("inner_join_indexer (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 416, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 416, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 416, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "inner_join_indexer") < 0)) __PYX_ERR(0, 416, __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_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 416, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 418, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 418, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_72inner_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_72inner_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_int16_t __pyx_v_lval;
  __pyx_t_5numpy_int16_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4inner_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int16_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 416, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int16_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 416, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_75inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_75inner_join_indexer = {"__pyx_fuse_5inner_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_75inner_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_12inner_join_indexer};
static PyObject *__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_75inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("inner_join_indexer (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 416, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 416, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 416, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "inner_join_indexer") < 0)) __PYX_ERR(0, 416, __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_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 416, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 418, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 418, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_74inner_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_74inner_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_int32_t __pyx_v_lval;
  __pyx_t_5numpy_int32_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5inner_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 416, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 416, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_77inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_77inner_join_indexer = {"__pyx_fuse_6inner_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_77inner_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_12inner_join_indexer};
static PyObject *__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_77inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("inner_join_indexer (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 416, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 416, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 416, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "inner_join_indexer") < 0)) __PYX_ERR(0, 416, __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_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 416, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 418, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 418, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_76inner_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_76inner_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_int64_t __pyx_v_lval;
  __pyx_t_5numpy_int64_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6inner_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 416, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 416, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_79inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_79inner_join_indexer = {"__pyx_fuse_7inner_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_79inner_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_12inner_join_indexer};
static PyObject *__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_79inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("inner_join_indexer (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 416, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 416, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 416, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "inner_join_indexer") < 0)) __PYX_ERR(0, 416, __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_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 416, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 418, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 418, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_78inner_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_78inner_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_uint64_t __pyx_v_lval;
  __pyx_t_5numpy_uint64_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7inner_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 416, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 416, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__51 = PyTuple_Pack(13, __pyx_n_s_left, __pyx_n_s_right, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_k, __pyx_n_s_nright, __pyx_n_s_nleft, __pyx_n_s_count, __pyx_n_s_lval, __pyx_n_s_rval, __pyx_n_s_lindexer, __pyx_n_s_rindexer, __pyx_n_s_result); if (unlikely(!__pyx_tuple__51)) __PYX_ERR(0, 416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__51);
  __Pyx_GIVEREF(__pyx_tuple__51);
/* … */
    __pyx_t_6 = __Pyx_PyDict_NewPresized(8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_65inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_8, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    #else
    __pyx_t_7 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_65inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 416, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_float64_t, __pyx_t_7) < 0) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_67inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_8, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    #else
    __pyx_t_7 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_67inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 416, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_float32_t, __pyx_t_7) < 0) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_69inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_8, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    #else
    __pyx_t_7 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_69inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 416, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_object, __pyx_t_7) < 0) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_71inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_8, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    #else
    __pyx_t_7 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_71inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 416, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_int8_t, __pyx_t_7) < 0) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_73inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_8, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    #else
    __pyx_t_7 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_73inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 416, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_int16_t, __pyx_t_7) < 0) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_75inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_8, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    #else
    __pyx_t_7 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_75inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 416, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_int32_t, __pyx_t_7) < 0) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_77inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_8, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    #else
    __pyx_t_7 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_77inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 416, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_int64_t, __pyx_t_7) < 0) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_79inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_8, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    #else
    __pyx_t_7 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_79inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 416, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_uint64_t, __pyx_t_7) < 0) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = __pyx_FusedFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_13inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_8, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    #else
    __pyx_t_7 = __pyx_FusedFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_13inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 416, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_7);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_7, sizeof(__pyx_defaults2), 1)) __PYX_ERR(0, 416, __pyx_L1_error)
    __pyx_t_8 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 416, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_t_7)->__pyx_arg__fused_sigindex = __pyx_t_8;
    __Pyx_GIVEREF(__pyx_t_8);
    __pyx_t_8 = 0;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_empty_tuple);
    ((__pyx_FusedFunctionObject *) __pyx_t_7)->__signatures__ = __pyx_t_6;
    __Pyx_GIVEREF(__pyx_t_6);
    #if CYTHON_COMPILING_IN_LIMITED_API
    __Pyx_INCREF(__pyx_t_7);
    if (PyModule_AddObject(__pyx_m, __pyx_k_inner_join_indexer, __pyx_t_7) < 0) __PYX_ERR(0, 416, __pyx_L1_error)
    #else
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_inner_join_indexer, __pyx_t_7) < 0) __PYX_ERR(0, 416, __pyx_L1_error)
    #endif
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_codeobj__52 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__51, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_inner_join_indexer, 416, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__52)) __PYX_ERR(0, 416, __pyx_L1_error)
 417: @cython.boundscheck(False)
 418: def inner_join_indexer(ndarray[join_t] left, ndarray[join_t] right):
 419:     """
 420:     Two-pass algorithm for monotonic indexes. Handles many-to-one merges.
 421:     """
 422:     cdef:
 423:         Py_ssize_t i, j, k, nright, nleft, count
 424:         join_t lval, rval
 425:         ndarray[int64_t] lindexer, rindexer
 426:         ndarray[join_t] result
 427: 
+428:     nleft = len(left)
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 428, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 428, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 428, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 428, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 428, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 428, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 428, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 428, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
+429:     nright = len(right)
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 429, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 429, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 429, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 429, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 429, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 429, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 429, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 429, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
 430: 
+431:     i = 0
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
+432:     j = 0
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
+433:     count = 0
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
+434:     if nleft > 0 and nright > 0:
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
+435:         while True:
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
+436:             if i == nleft:
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
+437:                 break
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
+438:             if j == nright:
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
+439:                 break
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
 440: 
+441:             lval = left[i]
      __pyx_t_4 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_5 = __pyx_v_i;
      __pyx_t_4 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_left.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_4);
      __Pyx_XDECREF_SET(__pyx_v_lval, __pyx_t_4);
      __pyx_t_4 = 0;
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides));
+442:             rval = right[j]
      __pyx_t_5 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_5 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_6 = __pyx_v_j;
      __pyx_t_4 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_right.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_4);
      __Pyx_XDECREF_SET(__pyx_v_rval, __pyx_t_4);
      __pyx_t_4 = 0;
/* … */
      __pyx_t_5 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_5 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_5 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_5 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_5 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_right.diminfo[0].strides));
+443:             if lval == rval:
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_4 = PyObject_RichCompare(__pyx_v_lval, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 443, __pyx_L1_error)
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 443, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
+444:                 count += 1
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
+445:                 if i < nleft - 1:
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
+446:                     if j < nright - 1 and right[j + 1] == rval:
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L13_bool_binop_done;
          }
          __pyx_t_6 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L13_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L12;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L13_bool_binop_done;
          }
          __pyx_t_6 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L13_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L12;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L13_bool_binop_done;
          }
          __pyx_t_7 = (__pyx_v_j + 1);
          __pyx_t_4 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_right.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_4);
          __pyx_t_8 = PyObject_RichCompare(__pyx_t_4, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 446, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 446, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_2 = __pyx_t_3;
          __pyx_L13_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L12;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L13_bool_binop_done;
          }
          __pyx_t_6 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L13_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L12;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L13_bool_binop_done;
          }
          __pyx_t_6 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L13_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L12;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L13_bool_binop_done;
          }
          __pyx_t_6 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L13_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L12;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L13_bool_binop_done;
          }
          __pyx_t_6 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L13_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L12;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L13_bool_binop_done;
          }
          __pyx_t_6 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L13_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L12;
          }
+447:                         j += 1
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
 448:                     else:
+449:                         i += 1
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
+450:                         if left[i] != rval:
            __pyx_t_7 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L12:;
/* … */
            __pyx_t_7 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L12:;
/* … */
            __pyx_t_9 = __pyx_v_i;
            __pyx_t_8 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_9, __pyx_pybuffernd_left.diminfo[0].strides);
            __Pyx_INCREF((PyObject*)__pyx_t_8);
            __pyx_t_4 = PyObject_RichCompare(__pyx_t_8, __pyx_v_rval, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 450, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 450, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L12:;
/* … */
            __pyx_t_7 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L12:;
/* … */
            __pyx_t_7 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L12:;
/* … */
            __pyx_t_7 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L12:;
/* … */
            __pyx_t_7 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L12:;
/* … */
            __pyx_t_7 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L12:;
+451:                             j += 1
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
+452:                 elif j < nright - 1:
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
+453:                     j += 1
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
+454:                     if lval != right[j]:
          __pyx_t_8 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_8 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_10 = __pyx_v_j;
          __pyx_t_4 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_right.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_4);
          __pyx_t_8 = PyObject_RichCompare(__pyx_v_lval, __pyx_t_4, Py_NE); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 454, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 454, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_8 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_8 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_8 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_8 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_8 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
+455:                         i += 1
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
 456:                 else:
 457:                     # end of the road
+458:                     break
        /*else*/ {
          goto __pyx_L7_break;
        }
        __pyx_L11:;
/* … */
        /*else*/ {
          goto __pyx_L7_break;
        }
        __pyx_L11:;
/* … */
        /*else*/ {
          goto __pyx_L7_break;
        }
        __pyx_L11:;
/* … */
        /*else*/ {
          goto __pyx_L7_break;
        }
        __pyx_L11:;
/* … */
        /*else*/ {
          goto __pyx_L7_break;
        }
        __pyx_L11:;
/* … */
        /*else*/ {
          goto __pyx_L7_break;
        }
        __pyx_L11:;
/* … */
        /*else*/ {
          goto __pyx_L7_break;
        }
        __pyx_L11:;
/* … */
        /*else*/ {
          goto __pyx_L7_break;
        }
        __pyx_L11:;
+459:             elif lval < rval:
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_8 = PyObject_RichCompare(__pyx_v_lval, __pyx_v_rval, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 459, __pyx_L1_error)
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 459, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
+460:                 i += 1
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
 461:             else:
+462:                 j += 1
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L10:;
    }
    __pyx_L7_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L10:;
    }
    __pyx_L7_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L10:;
    }
    __pyx_L7_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L10:;
    }
    __pyx_L7_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L10:;
    }
    __pyx_L7_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L10:;
    }
    __pyx_L7_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L10:;
    }
    __pyx_L7_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L10:;
    }
    __pyx_L7_break:;
 463: 
 464:     # do it again now that result size is known
 465: 
+466:     lindexer = np.empty(count, dtype=np.int64)
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_int64); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_13) < 0) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_11, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 466, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 466, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_int64); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_13) < 0) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_11, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 466, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 466, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_int64); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_13) < 0) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_11, __pyx_t_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 466, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 466, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_int64); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_13) < 0) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_11, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 466, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 466, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_int64); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_13) < 0) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_11, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 466, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 466, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_int64); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_13) < 0) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_11, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 466, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 466, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_int64); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_13) < 0) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_11, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 466, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 466, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_int64); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_13) < 0) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_11, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 466, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 466, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
+467:     rindexer = np.empty(count, dtype=np.int64)
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_dtype, __pyx_t_12) < 0) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 467, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_18, __pyx_t_17, __pyx_t_16);
      }
      __pyx_t_18 = __pyx_t_17 = __pyx_t_16 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 467, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_dtype, __pyx_t_12) < 0) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 467, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_18, __pyx_t_17, __pyx_t_16);
      }
      __pyx_t_18 = __pyx_t_17 = __pyx_t_16 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 467, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_empty); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_int64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_dtype, __pyx_t_12) < 0) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 467, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_18, __pyx_t_17, __pyx_t_16);
      }
      __pyx_t_18 = __pyx_t_17 = __pyx_t_16 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 467, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_dtype, __pyx_t_12) < 0) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 467, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_18, __pyx_t_17, __pyx_t_16);
      }
      __pyx_t_18 = __pyx_t_17 = __pyx_t_16 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 467, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_dtype, __pyx_t_12) < 0) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 467, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_18, __pyx_t_17, __pyx_t_16);
      }
      __pyx_t_18 = __pyx_t_17 = __pyx_t_16 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 467, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_dtype, __pyx_t_12) < 0) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 467, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_18, __pyx_t_17, __pyx_t_16);
      }
      __pyx_t_18 = __pyx_t_17 = __pyx_t_16 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 467, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_dtype, __pyx_t_12) < 0) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 467, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_18, __pyx_t_17, __pyx_t_16);
      }
      __pyx_t_18 = __pyx_t_17 = __pyx_t_16 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 467, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_dtype, __pyx_t_12) < 0) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 467, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_18, __pyx_t_17, __pyx_t_16);
      }
      __pyx_t_18 = __pyx_t_17 = __pyx_t_16 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 467, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
+468:     result = np.empty(count, dtype=left.dtype)
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_empty); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12);
  __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 468, __pyx_L1_error)
  __pyx_t_19 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 468, __pyx_L1_error)
  }
  __pyx_t_19 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_empty); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12);
  __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 468, __pyx_L1_error)
  __pyx_t_19 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 468, __pyx_L1_error)
  }
  __pyx_t_19 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_empty); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12);
  __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 468, __pyx_L1_error)
  __pyx_t_19 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_object, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_object, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 468, __pyx_L1_error)
  }
  __pyx_t_19 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_empty); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12);
  __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 468, __pyx_L1_error)
  __pyx_t_19 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 468, __pyx_L1_error)
  }
  __pyx_t_19 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_empty); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12);
  __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 468, __pyx_L1_error)
  __pyx_t_19 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int16_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int16_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 468, __pyx_L1_error)
  }
  __pyx_t_19 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_empty); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12);
  __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 468, __pyx_L1_error)
  __pyx_t_19 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 468, __pyx_L1_error)
  }
  __pyx_t_19 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_empty); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12);
  __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 468, __pyx_L1_error)
  __pyx_t_19 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 468, __pyx_L1_error)
  }
  __pyx_t_19 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_empty); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12);
  __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 468, __pyx_L1_error)
  __pyx_t_19 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 468, __pyx_L1_error)
  }
  __pyx_t_19 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
 469: 
+470:     i = 0
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
+471:     j = 0
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
+472:     count = 0
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
+473:     if nleft > 0 and nright > 0:
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L18_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L18_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L18_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L18_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L18_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L18_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L18_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L18_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L18_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L18_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L18_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L18_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L18_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L18_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L18_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L18_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
+474:         while True:
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
+475:             if i == nleft:
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
+476:                 break
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
+477:             if j == nright:
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
+478:                 break
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
 479: 
+480:             lval = left[i]
      __pyx_t_20 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_20 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_20 = __pyx_v_i;
      __pyx_t_8 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_left.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_8);
      __Pyx_XDECREF_SET(__pyx_v_lval, __pyx_t_8);
      __pyx_t_8 = 0;
/* … */
      __pyx_t_20 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_20 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_20 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_20 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_20 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_left.diminfo[0].strides));
+481:             rval = right[j]
      __pyx_t_21 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_21 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_21 = __pyx_v_j;
      __pyx_t_8 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_8);
      __Pyx_XDECREF_SET(__pyx_v_rval, __pyx_t_8);
      __pyx_t_8 = 0;
/* … */
      __pyx_t_21 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_21 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_21 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_21 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_21 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right.diminfo[0].strides));
+482:             if lval == rval:
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_8 = PyObject_RichCompare(__pyx_v_lval, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 482, __pyx_L1_error)
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 482, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
+483:                 lindexer[count] = i
        __pyx_t_22 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_22 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_22 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_22 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_22 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_22 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_22 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_22 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
+484:                 rindexer[count] = j
        __pyx_t_23 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_23 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_23 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_23 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_23 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_23 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_23 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_23 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
+485:                 result[count] = rval
        __pyx_t_24 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_rval;
/* … */
        __pyx_t_24 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_rval;
/* … */
        __pyx_t_24 = __pyx_v_count;
        __pyx_t_25 = __Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_result.diminfo[0].strides);
        __Pyx_GOTREF(*__pyx_t_25);
        __Pyx_INCREF(__pyx_v_rval); __Pyx_DECREF(*__pyx_t_25);
        *__pyx_t_25 = __pyx_v_rval;
        __Pyx_GIVEREF(*__pyx_t_25);
/* … */
        __pyx_t_24 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_rval;
/* … */
        __pyx_t_24 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_rval;
/* … */
        __pyx_t_24 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_rval;
/* … */
        __pyx_t_24 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_rval;
/* … */
        __pyx_t_24 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_rval;
+486:                 count += 1
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
+487:                 if i < nleft - 1:
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
+488:                     if j < nright - 1 and right[j + 1] == rval:
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L27_bool_binop_done;
          }
          __pyx_t_25 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L27_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L26;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L27_bool_binop_done;
          }
          __pyx_t_25 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L27_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L26;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L27_bool_binop_done;
          }
          __pyx_t_26 = (__pyx_v_j + 1);
          __pyx_t_8 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_right.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_8);
          __pyx_t_12 = PyObject_RichCompare(__pyx_t_8, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 488, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 488, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_2 = __pyx_t_3;
          __pyx_L27_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L26;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L27_bool_binop_done;
          }
          __pyx_t_25 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L27_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L26;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L27_bool_binop_done;
          }
          __pyx_t_25 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L27_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L26;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L27_bool_binop_done;
          }
          __pyx_t_25 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L27_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L26;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L27_bool_binop_done;
          }
          __pyx_t_25 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L27_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L26;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L27_bool_binop_done;
          }
          __pyx_t_25 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L27_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L26;
          }
+489:                         j += 1
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
 490:                     else:
+491:                         i += 1
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
+492:                         if left[i] != rval:
            __pyx_t_26 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L26:;
/* … */
            __pyx_t_26 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L26:;
/* … */
            __pyx_t_27 = __pyx_v_i;
            __pyx_t_12 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_left.diminfo[0].strides);
            __Pyx_INCREF((PyObject*)__pyx_t_12);
            __pyx_t_8 = PyObject_RichCompare(__pyx_t_12, __pyx_v_rval, Py_NE); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 492, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 492, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L26:;
/* … */
            __pyx_t_26 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L26:;
/* … */
            __pyx_t_26 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L26:;
/* … */
            __pyx_t_26 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L26:;
/* … */
            __pyx_t_26 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L26:;
/* … */
            __pyx_t_26 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L26:;
+493:                             j += 1
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
+494:                 elif j < nright - 1:
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
+495:                     j += 1
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
+496:                     if lval != right[j]:
          __pyx_t_27 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_27 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_28 = __pyx_v_j;
          __pyx_t_8 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_8);
          __pyx_t_12 = PyObject_RichCompare(__pyx_v_lval, __pyx_t_8, Py_NE); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 496, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 496, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_27 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_27 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_27 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_27 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_27 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
+497:                         i += 1
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
 498:                 else:
 499:                     # end of the road
+500:                     break
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L25:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L25:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L25:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L25:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L25:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L25:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L25:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L25:;
+501:             elif lval < rval:
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_12 = PyObject_RichCompare(__pyx_v_lval, __pyx_v_rval, Py_LT); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 501, __pyx_L1_error)
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 501, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
+502:                 i += 1
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
 503:             else:
+504:                 j += 1
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L24:;
    }
    __pyx_L21_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L24:;
    }
    __pyx_L21_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L24:;
    }
    __pyx_L21_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L24:;
    }
    __pyx_L21_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L24:;
    }
    __pyx_L21_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L24:;
    }
    __pyx_L21_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L24:;
    }
    __pyx_L21_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L24:;
    }
    __pyx_L21_break:;
 505: 
+506:     return result, lindexer, rindexer
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __Pyx_GIVEREF((PyObject *)__pyx_v_result);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF((PyObject *)__pyx_v_lindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_lindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF((PyObject *)__pyx_v_rindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_rindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __Pyx_GIVEREF((PyObject *)__pyx_v_result);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF((PyObject *)__pyx_v_lindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_lindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF((PyObject *)__pyx_v_rindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_rindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_12 = PyTuple_New(3); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __Pyx_GIVEREF((PyObject *)__pyx_v_result);
  PyTuple_SET_ITEM(__pyx_t_12, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF((PyObject *)__pyx_v_lindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_lindexer);
  PyTuple_SET_ITEM(__pyx_t_12, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF((PyObject *)__pyx_v_rindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_rindexer);
  PyTuple_SET_ITEM(__pyx_t_12, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_12;
  __pyx_t_12 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __Pyx_GIVEREF((PyObject *)__pyx_v_result);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF((PyObject *)__pyx_v_lindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_lindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF((PyObject *)__pyx_v_rindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_rindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __Pyx_GIVEREF((PyObject *)__pyx_v_result);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF((PyObject *)__pyx_v_lindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_lindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF((PyObject *)__pyx_v_rindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_rindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __Pyx_GIVEREF((PyObject *)__pyx_v_result);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF((PyObject *)__pyx_v_lindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_lindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF((PyObject *)__pyx_v_rindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_rindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __Pyx_GIVEREF((PyObject *)__pyx_v_result);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF((PyObject *)__pyx_v_lindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_lindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF((PyObject *)__pyx_v_rindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_rindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __Pyx_GIVEREF((PyObject *)__pyx_v_result);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF((PyObject *)__pyx_v_lindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_lindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF((PyObject *)__pyx_v_rindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_rindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
 507: 
 508: 
+509: @cython.wraparound(False)
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_15outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_15outer_join_indexer = {"outer_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pandas_5_libs_4join_15outer_join_indexer, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6pandas_5_libs_4join_15outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  PyObject *__pyx_v__fused_sigindex = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,&__pyx_n_s_fused_sigindex,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,&__pyx_n_s_fused_sigindex,0};
    #endif
    PyObject* values[5] = {0,0,0,0,0};
    __pyx_defaults3 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_self);
    values[4] = __pyx_dynamic_args->__pyx_arg__fused_sigindex;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_signatures)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 509, __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_args)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 509, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 1); __PYX_ERR(0, 509, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 509, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 2); __PYX_ERR(0, 509, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_defaults)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 509, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 3); __PYX_ERR(0, 509, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fused_sigindex);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 509, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const 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_fused_cpdef") < 0)) __PYX_ERR(0, 509, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
    __pyx_v__fused_sigindex = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, __pyx_nargs); __PYX_ERR(0, 509, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_14outer_join_indexer(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults, __pyx_v__fused_sigindex);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_14outer_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults, PyObject *__pyx_v__fused_sigindex) {
  PyObject *__pyx_v_search_list = 0;
  PyObject *__pyx_v_sn = 0;
  PyObject *__pyx_v_sigindex_node = 0;
  PyObject *__pyx_v_dest_sig = NULL;
  PyTypeObject *__pyx_v_ndarray = 0;
  __Pyx_memviewslice __pyx_v_memslice;
  Py_ssize_t __pyx_v_itemsize;
  int __pyx_v_dtype_signed;
  char __pyx_v_kind;
  int __pyx_v____pyx_int8_t_is_signed;
  int __pyx_v____pyx_int16_t_is_signed;
  int __pyx_v____pyx_int32_t_is_signed;
  int __pyx_v____pyx_int64_t_is_signed;
  int __pyx_v____pyx_uint64_t_is_signed;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_dtype = NULL;
  PyObject *__pyx_v_arg_base = NULL;
  PyObject *__pyx_v_sig = NULL;
  PyObject *__pyx_v_sig_series = NULL;
  PyObject *__pyx_v_sig_type = NULL;
  PyObject *__pyx_v_sigindex_matches = NULL;
  PyObject *__pyx_v_sigindex_candidates = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_v_found_matches = NULL;
  PyObject *__pyx_v_found_candidates = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("outer_join_indexer", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 509, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 509, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  __pyx_v____pyx_int8_t_is_signed = (!((((__pyx_t_5numpy_int8_t)-1L) > 0) != 0));
  __pyx_v____pyx_int16_t_is_signed = (!((((__pyx_t_5numpy_int16_t)-1L) > 0) != 0));
  __pyx_v____pyx_int32_t_is_signed = (!((((__pyx_t_5numpy_int32_t)-1L) > 0) != 0));
  __pyx_v____pyx_int64_t_is_signed = (!((((__pyx_t_5numpy_int64_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 509, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 509, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 509, __pyx_L1_error)
    }
    __pyx_t_1 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 0);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 509, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_left, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (likely(__pyx_t_2)) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 509, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_left); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 509, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 509, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 509, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 509, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_dtype = __pyx_t_6;
        __pyx_t_6 = 0;
        goto __pyx_L12;
      }
      __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg); 
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 509, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_arg_base = __pyx_t_6;
        __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
        __pyx_t_2 = (__pyx_t_3 != 0);
        if (__pyx_t_2) {
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 509, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_v_dtype = __pyx_t_6;
          __pyx_t_6 = 0;
          goto __pyx_L13;
        }
        /*else*/ {
          __Pyx_INCREF(Py_None);
          __pyx_v_dtype = Py_None;
        }
        __pyx_L13:;
        goto __pyx_L12;
      }
      /*else*/ {
        __Pyx_INCREF(Py_None);
        __pyx_v_dtype = Py_None;
      }
      __pyx_L12:;
      __pyx_v_itemsize = -1L;
      __pyx_t_2 = (__pyx_v_dtype != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 509, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 509, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_itemsize = __pyx_t_5;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 509, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 509, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_kind = __pyx_t_7;
        __pyx_v_dtype_signed = (__pyx_v_kind == 'i');
        switch (__pyx_v_kind) {
          case 'i':
          case 'u':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 509, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 509, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L16_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 509, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 509, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L20_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 509, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 509, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L24_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 509, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 509, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L28_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 509, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 509, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L32_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'f':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 509, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 509, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L36_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L39_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 509, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 509, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L39_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'c':
          break;
          case 'O':
          break;
          default: break;
        }
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L42_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L42_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L46_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L46_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L50_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(void *))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L50_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_object(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_object, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L54_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L54_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L58_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L58_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L62_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L62_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L66_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L66_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L70_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L70_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v__fused_sigindex); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_5 = 0;
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
      __PYX_ERR(0, 509, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF(__pyx_t_6);
    __pyx_t_6 = __pyx_t_1;
    __pyx_t_1 = 0;
    while (1) {
      __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_9, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_10);
      if (unlikely(__pyx_t_11 == 0)) break;
      if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 509, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
      __pyx_t_1 = 0;
      if (!(likely(PyDict_CheckExact(__pyx_v__fused_sigindex))||((__pyx_v__fused_sigindex) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_v__fused_sigindex))), 0))) __PYX_ERR(0, 509, __pyx_L1_error)
      __pyx_t_1 = __pyx_v__fused_sigindex;
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_sigindex_node, ((PyObject*)__pyx_t_1));
      __pyx_t_1 = 0;
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 509, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_14 = NULL;
      __pyx_t_11 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
        __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
        if (likely(__pyx_t_14)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_14);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_13, function);
          __pyx_t_11 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_14, __pyx_kp_s__2};
        __pyx_t_12 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_11, 1+__pyx_t_11);
        __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 509, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 509, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_12 = NULL;
      __pyx_t_15 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
        __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
        if (likely(__pyx_t_12)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_12);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_13, function);
          __pyx_t_15 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_kp_s__3};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_15, 1+__pyx_t_15);
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 509, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __Pyx_XDECREF_SET(__pyx_v_sig_series, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_sig_series, 0, -1L, NULL, NULL, &__pyx_slice__4, 0, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 509, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
        __pyx_t_13 = __pyx_t_1; __Pyx_INCREF(__pyx_t_13); __pyx_t_16 = 0;
        __pyx_t_17 = NULL;
      } else {
        __pyx_t_16 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 509, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_17 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 509, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      for (;;) {
        if (likely(!__pyx_t_17)) {
          if (likely(PyList_CheckExact(__pyx_t_13))) {
            if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_13)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_1); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 509, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          } else {
            if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_1); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 509, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          }
        } else {
          __pyx_t_1 = __pyx_t_17(__pyx_t_13);
          if (unlikely(!__pyx_t_1)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 509, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_XDECREF_SET(__pyx_v_sig_type, __pyx_t_1);
        __pyx_t_1 = 0;
        if (unlikely(__pyx_v_sigindex_node == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
          __PYX_ERR(0, 509, __pyx_L1_error)
        }
        __pyx_t_2 = (__Pyx_PyDict_ContainsTF(__pyx_v_sig_type, __pyx_v_sigindex_node, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
        __pyx_t_3 = (__pyx_t_2 != 0);
        if (__pyx_t_3) {
          __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 509, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          if (unlikely(__pyx_v_sigindex_node == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 509, __pyx_L1_error)
          }
          if (unlikely(PyDict_SetItem(__pyx_v_sigindex_node, __pyx_v_sig_type, __pyx_t_1) < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
          __Pyx_INCREF(__pyx_t_1);
          __Pyx_DECREF_SET(__pyx_v_sigindex_node, __pyx_t_1);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          goto __pyx_L78;
        }
        /*else*/ {
          if (unlikely(__pyx_v_sigindex_node == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 509, __pyx_L1_error)
          }
          __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_sigindex_node, __pyx_v_sig_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 509, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_1))), 0))) __PYX_ERR(0, 509, __pyx_L1_error)
          __Pyx_DECREF_SET(__pyx_v_sigindex_node, ((PyObject*)__pyx_t_1));
          __pyx_t_1 = 0;
        }
        __pyx_L78:;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      if (unlikely(__pyx_v_sigindex_node == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(0, 509, __pyx_L1_error)
      }
      __pyx_t_13 = __Pyx_GetItemInt(__pyx_v_sig_series, -1L, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 509, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      if (unlikely(PyDict_SetItem(__pyx_v_sigindex_node, __pyx_t_13, __pyx_v_sig) < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 509, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_sigindex_matches = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 509, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v__fused_sigindex);
  __Pyx_GIVEREF(__pyx_v__fused_sigindex);
  PyList_SET_ITEM(__pyx_t_6, 0, __pyx_v__fused_sigindex);
  __pyx_v_sigindex_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __pyx_v_dest_sig; __Pyx_INCREF(__pyx_t_6); __pyx_t_9 = 0;
  for (;;) {
    if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_6)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_13 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_9); __Pyx_INCREF(__pyx_t_13); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
    #else
    __pyx_t_13 = PySequence_ITEM(__pyx_t_6, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_13);
    __pyx_t_13 = 0;
    __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_XDECREF_SET(__pyx_v_found_matches, ((PyObject*)__pyx_t_13));
    __pyx_t_13 = 0;
    __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_XDECREF_SET(__pyx_v_found_candidates, ((PyObject*)__pyx_t_13));
    __pyx_t_13 = 0;
    __pyx_t_3 = (__pyx_v_dst_type == Py_None);
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      __pyx_t_13 = __pyx_v_sigindex_matches; __Pyx_INCREF(__pyx_t_13); __pyx_t_5 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 509, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
        if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_1))), 0))) __PYX_ERR(0, 509, __pyx_L1_error)
        __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_1));
        __pyx_t_1 = 0;
        if (unlikely(__pyx_v_sn == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
          __PYX_ERR(0, 509, __pyx_L1_error)
        }
        __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_sn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 509, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_18 = __Pyx_PyList_Extend(__pyx_v_found_matches, __pyx_t_1); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 509, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_13 = __pyx_v_sigindex_candidates; __Pyx_INCREF(__pyx_t_13); __pyx_t_5 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 509, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
        if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_1))), 0))) __PYX_ERR(0, 509, __pyx_L1_error)
        __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_1));
        __pyx_t_1 = 0;
        if (unlikely(__pyx_v_sn == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
          __PYX_ERR(0, 509, __pyx_L1_error)
        }
        __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_sn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 509, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_18 = __Pyx_PyList_Extend(__pyx_v_found_candidates, __pyx_t_1); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 509, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      goto __pyx_L81;
    }
    /*else*/ {
      __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 509, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_INCREF(__pyx_v_sigindex_matches);
      __Pyx_GIVEREF(__pyx_v_sigindex_matches);
      PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_v_sigindex_matches);
      __Pyx_INCREF(__pyx_v_sigindex_candidates);
      __Pyx_GIVEREF(__pyx_v_sigindex_candidates);
      PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_v_sigindex_candidates);
      __pyx_t_1 = __pyx_t_13; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      for (;;) {
        if (__pyx_t_5 >= 2) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_13); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
        #else
        __pyx_t_13 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 509, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        #endif
        __Pyx_XDECREF_SET(__pyx_v_search_list, ((PyObject*)__pyx_t_13));
        __pyx_t_13 = 0;
        if (unlikely(__pyx_v_search_list == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
          __PYX_ERR(0, 509, __pyx_L1_error)
        }
        __pyx_t_13 = __pyx_v_search_list; __Pyx_INCREF(__pyx_t_13); __pyx_t_16 = 0;
        for (;;) {
          if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_13)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_12 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_12); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
          #else
          __pyx_t_12 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 509, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          #endif
          if (!(likely(PyDict_CheckExact(__pyx_t_12))||((__pyx_t_12) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_12))), 0))) __PYX_ERR(0, 509, __pyx_L1_error)
          __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_12));
          __pyx_t_12 = 0;
          if (unlikely(__pyx_v_sn == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
            __PYX_ERR(0, 509, __pyx_L1_error)
          }
          __pyx_t_2 = (__Pyx_PyDict_ContainsTF(__pyx_v_dst_type, __pyx_v_sn, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 509, __pyx_L1_error)
          __pyx_t_3 = (__pyx_t_2 != 0);
          if (__pyx_t_3) {
            if (unlikely(__pyx_v_sn == Py_None)) {
              PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
              __PYX_ERR(0, 509, __pyx_L1_error)
            }
            __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_sn, __pyx_v_dst_type); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 509, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_found_matches, __pyx_t_12); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 509, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          }
        }
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L81:;
    __Pyx_INCREF(__pyx_v_found_matches);
    __Pyx_DECREF_SET(__pyx_v_sigindex_matches, __pyx_v_found_matches);
    __Pyx_INCREF(__pyx_v_found_candidates);
    __Pyx_DECREF_SET(__pyx_v_sigindex_candidates, __pyx_v_found_candidates);
    __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_found_matches) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L92_bool_binop_done;
    }
    __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_found_candidates) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L92_bool_binop_done:;
    __pyx_t_2 = ((!__pyx_t_3) != 0);
    if (__pyx_t_2) {
      goto __pyx_L80_break;
    }
  }
  __pyx_L80_break:;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_INCREF(__pyx_v_sigindex_matches);
  __pyx_v_candidates = __pyx_v_sigindex_matches;
  __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_3)) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 509, __pyx_L1_error)
  }
  __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 509, __pyx_L1_error)
  __pyx_t_3 = ((__pyx_t_9 > 1) != 0);
  if (unlikely(__pyx_t_3)) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 509, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 509, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), PyList_GET_ITEM(__pyx_v_candidates, 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_search_list);
  __Pyx_XDECREF(__pyx_v_sn);
  __Pyx_XDECREF(__pyx_v_sigindex_node);
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF((PyObject *)__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_dtype);
  __Pyx_XDECREF(__pyx_v_arg_base);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_sig_series);
  __Pyx_XDECREF(__pyx_v_sig_type);
  __Pyx_XDECREF(__pyx_v_sigindex_matches);
  __Pyx_XDECREF(__pyx_v_sigindex_candidates);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_found_matches);
  __Pyx_XDECREF(__pyx_v_found_candidates);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_83outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_83outer_join_indexer = {"__pyx_fuse_0outer_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_83outer_join_indexer, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_83outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("outer_join_indexer (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 509, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 509, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 509, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "outer_join_indexer") < 0)) __PYX_ERR(0, 509, __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_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 509, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 511, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 511, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_82outer_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_82outer_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_float64_t __pyx_v_lval;
  __pyx_t_5numpy_float64_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0outer_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 509, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 509, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_85outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_85outer_join_indexer = {"__pyx_fuse_1outer_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_85outer_join_indexer, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_85outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("outer_join_indexer (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 509, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 509, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 509, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "outer_join_indexer") < 0)) __PYX_ERR(0, 509, __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_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 509, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 511, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 511, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_84outer_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_84outer_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_float32_t __pyx_v_lval;
  __pyx_t_5numpy_float32_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1outer_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 509, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 509, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_87outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_87outer_join_indexer = {"__pyx_fuse_2outer_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_87outer_join_indexer, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_87outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("outer_join_indexer (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 509, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 509, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 509, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "outer_join_indexer") < 0)) __PYX_ERR(0, 509, __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_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 509, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 511, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 511, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_86outer_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_86outer_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  PyObject *__pyx_v_lval = 0;
  PyObject *__pyx_v_rval = 0;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2outer_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_object, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 509, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_object, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 509, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF(__pyx_v_lval);
  __Pyx_XDECREF(__pyx_v_rval);
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_89outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_89outer_join_indexer = {"__pyx_fuse_3outer_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_89outer_join_indexer, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_89outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("outer_join_indexer (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 509, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 509, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 509, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "outer_join_indexer") < 0)) __PYX_ERR(0, 509, __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_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 509, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 511, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 511, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_88outer_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_88outer_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_int8_t __pyx_v_lval;
  __pyx_t_5numpy_int8_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3outer_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 509, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 509, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_91outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_91outer_join_indexer = {"__pyx_fuse_4outer_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_91outer_join_indexer, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_91outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("outer_join_indexer (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 509, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 509, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 509, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "outer_join_indexer") < 0)) __PYX_ERR(0, 509, __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_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 509, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 511, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 511, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_90outer_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_90outer_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_int16_t __pyx_v_lval;
  __pyx_t_5numpy_int16_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4outer_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int16_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 509, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int16_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 509, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_93outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_93outer_join_indexer = {"__pyx_fuse_5outer_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_93outer_join_indexer, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_93outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("outer_join_indexer (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 509, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 509, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 509, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "outer_join_indexer") < 0)) __PYX_ERR(0, 509, __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_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 509, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 511, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 511, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_92outer_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_92outer_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_int32_t __pyx_v_lval;
  __pyx_t_5numpy_int32_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5outer_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 509, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 509, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_95outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_95outer_join_indexer = {"__pyx_fuse_6outer_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_95outer_join_indexer, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_95outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("outer_join_indexer (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 509, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 509, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 509, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "outer_join_indexer") < 0)) __PYX_ERR(0, 509, __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_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 509, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 511, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 511, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_94outer_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_94outer_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_int64_t __pyx_v_lval;
  __pyx_t_5numpy_int64_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6outer_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 509, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 509, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_97outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_97outer_join_indexer = {"__pyx_fuse_7outer_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_97outer_join_indexer, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_97outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("outer_join_indexer (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    #endif
    PyObject* values[2] = {0,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_left)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 509, __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_right)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 509, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 509, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "outer_join_indexer") < 0)) __PYX_ERR(0, 509, __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_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 509, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 511, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 511, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_96outer_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_96outer_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_uint64_t __pyx_v_lval;
  __pyx_t_5numpy_uint64_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7outer_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 509, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 509, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __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);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__53 = PyTuple_Pack(12, __pyx_n_s_left, __pyx_n_s_right, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_nright, __pyx_n_s_nleft, __pyx_n_s_count, __pyx_n_s_lval, __pyx_n_s_rval, __pyx_n_s_lindexer, __pyx_n_s_rindexer, __pyx_n_s_result); if (unlikely(!__pyx_tuple__53)) __PYX_ERR(0, 509, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__53);
  __Pyx_GIVEREF(__pyx_tuple__53);
/* … */
    __pyx_t_8 = __Pyx_PyDict_NewPresized(8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_9 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_83outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_10, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    #else
    __pyx_t_9 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_83outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 509, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_float64_t, __pyx_t_9) < 0) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_9 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_85outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_10, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    #else
    __pyx_t_9 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_85outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 509, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_float32_t, __pyx_t_9) < 0) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_9 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_87outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_10, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    #else
    __pyx_t_9 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_87outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 509, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_object, __pyx_t_9) < 0) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_9 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_89outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_10, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    #else
    __pyx_t_9 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_89outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 509, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_int8_t, __pyx_t_9) < 0) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_9 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_91outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_10, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    #else
    __pyx_t_9 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_91outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 509, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_int16_t, __pyx_t_9) < 0) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_9 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_93outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_10, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    #else
    __pyx_t_9 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_93outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 509, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_int32_t, __pyx_t_9) < 0) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_9 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_95outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_10, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    #else
    __pyx_t_9 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_95outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 509, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_int64_t, __pyx_t_9) < 0) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_9 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_97outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_10, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    #else
    __pyx_t_9 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_97outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 509, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_empty_tuple);
    if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_uint64_t, __pyx_t_9) < 0) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_9 = __pyx_FusedFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_15outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_10, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    #else
    __pyx_t_9 = __pyx_FusedFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_15outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 509, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_9);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_9, sizeof(__pyx_defaults3), 1)) __PYX_ERR(0, 509, __pyx_L1_error)
    __pyx_t_10 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_t_9)->__pyx_arg__fused_sigindex = __pyx_t_10;
    __Pyx_GIVEREF(__pyx_t_10);
    __pyx_t_10 = 0;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_empty_tuple);
    ((__pyx_FusedFunctionObject *) __pyx_t_9)->__signatures__ = __pyx_t_8;
    __Pyx_GIVEREF(__pyx_t_8);
    #if CYTHON_COMPILING_IN_LIMITED_API
    __Pyx_INCREF(__pyx_t_9);
    if (PyModule_AddObject(__pyx_m, __pyx_k_outer_join_indexer, __pyx_t_9) < 0) __PYX_ERR(0, 509, __pyx_L1_error)
    #else
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_outer_join_indexer, __pyx_t_9) < 0) __PYX_ERR(0, 509, __pyx_L1_error)
    #endif
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_codeobj__54 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__53, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_outer_join_indexer, 509, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__54)) __PYX_ERR(0, 509, __pyx_L1_error)
 510: @cython.boundscheck(False)
 511: def outer_join_indexer(ndarray[join_t] left, ndarray[join_t] right):
 512:     cdef:
 513:         Py_ssize_t i, j, nright, nleft, count
 514:         join_t lval, rval
 515:         ndarray[int64_t] lindexer, rindexer
 516:         ndarray[join_t] result
 517: 
+518:     nleft = len(left)
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 518, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 518, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 518, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 518, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 518, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 518, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 518, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 518, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
+519:     nright = len(right)
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 519, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 519, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 519, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 519, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 519, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 519, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 519, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 519, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
 520: 
+521:     i = 0
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
+522:     j = 0
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
+523:     count = 0
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
+524:     if nleft == 0:
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
+525:         count = nright
    __pyx_v_count = __pyx_v_nright;
/* … */
    __pyx_v_count = __pyx_v_nright;
/* … */
    __pyx_v_count = __pyx_v_nright;
/* … */
    __pyx_v_count = __pyx_v_nright;
/* … */
    __pyx_v_count = __pyx_v_nright;
/* … */
    __pyx_v_count = __pyx_v_nright;
/* … */
    __pyx_v_count = __pyx_v_nright;
/* … */
    __pyx_v_count = __pyx_v_nright;
+526:     elif nright == 0:
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
+527:         count = nleft
    __pyx_v_count = __pyx_v_nleft;
/* … */
    __pyx_v_count = __pyx_v_nleft;
/* … */
    __pyx_v_count = __pyx_v_nleft;
/* … */
    __pyx_v_count = __pyx_v_nleft;
/* … */
    __pyx_v_count = __pyx_v_nleft;
/* … */
    __pyx_v_count = __pyx_v_nleft;
/* … */
    __pyx_v_count = __pyx_v_nleft;
/* … */
    __pyx_v_count = __pyx_v_nleft;
 528:     else:
+529:         while True:
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
+530:             if i == nleft:
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
+531:                 count += nright - j
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nright - __pyx_v_j));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nright - __pyx_v_j));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nright - __pyx_v_j));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nright - __pyx_v_j));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nright - __pyx_v_j));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nright - __pyx_v_j));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nright - __pyx_v_j));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nright - __pyx_v_j));
+532:                 break
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
+533:             if j == nright:
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
+534:                 count += nleft - i
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
+535:                 break
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
 536: 
+537:             lval = left[i]
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_t_3 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_3);
      __Pyx_XDECREF_SET(__pyx_v_lval, __pyx_t_3);
      __pyx_t_3 = 0;
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
+538:             rval = right[j]
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_5 = __pyx_v_j;
      __pyx_t_3 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_right.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_3);
      __Pyx_XDECREF_SET(__pyx_v_rval, __pyx_t_3);
      __pyx_t_3 = 0;
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
+539:             if lval == rval:
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_lval, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 539, __pyx_L1_error)
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 539, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
+540:                 count += 1
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
+541:                 if i < nleft - 1:
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
+542:                     if j < nright - 1 and right[j + 1] == rval:
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L11_bool_binop_done;
          }
          __pyx_t_6 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L11_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L10;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L11_bool_binop_done;
          }
          __pyx_t_6 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L11_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L10;
          }
/* … */
          __pyx_t_6 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_6) {
          } else {
            __pyx_t_2 = __pyx_t_6;
            goto __pyx_L11_bool_binop_done;
          }
          __pyx_t_7 = (__pyx_v_j + 1);
          __pyx_t_3 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_right.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_3);
          __pyx_t_8 = PyObject_RichCompare(__pyx_t_3, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 542, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 542, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_2 = __pyx_t_6;
          __pyx_L11_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L10;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L11_bool_binop_done;
          }
          __pyx_t_6 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L11_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L10;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L11_bool_binop_done;
          }
          __pyx_t_6 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L11_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L10;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L11_bool_binop_done;
          }
          __pyx_t_6 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L11_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L10;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L11_bool_binop_done;
          }
          __pyx_t_6 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L11_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L10;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L11_bool_binop_done;
          }
          __pyx_t_6 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L11_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L10;
          }
+543:                         j += 1
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
 544:                     else:
+545:                         i += 1
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
+546:                         if left[i] != rval:
            __pyx_t_7 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L10:;
/* … */
            __pyx_t_7 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L10:;
/* … */
            __pyx_t_9 = __pyx_v_i;
            __pyx_t_8 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_9, __pyx_pybuffernd_left.diminfo[0].strides);
            __Pyx_INCREF((PyObject*)__pyx_t_8);
            __pyx_t_3 = PyObject_RichCompare(__pyx_t_8, __pyx_v_rval, Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 546, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 546, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L10:;
/* … */
            __pyx_t_7 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L10:;
/* … */
            __pyx_t_7 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L10:;
/* … */
            __pyx_t_7 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L10:;
/* … */
            __pyx_t_7 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L10:;
/* … */
            __pyx_t_7 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_7, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L10:;
+547:                             j += 1
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
+548:                 elif j < nright - 1:
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
+549:                     j += 1
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
+550:                     if lval != right[j]:
          __pyx_t_8 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_8 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_10 = __pyx_v_j;
          __pyx_t_3 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_right.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_3);
          __pyx_t_8 = PyObject_RichCompare(__pyx_v_lval, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 550, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 550, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_8 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_8 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_8 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_8 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_8 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
+551:                         i += 1
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
 552:                 else:
 553:                     # end of the road
+554:                     break
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L9:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L9:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L9:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L9:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L9:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L9:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L9:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L9:;
+555:             elif lval < rval:
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_8 = PyObject_RichCompare(__pyx_v_lval, __pyx_v_rval, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 555, __pyx_L1_error)
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 555, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
+556:                 count += 1
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
+557:                 i += 1
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
 558:             else:
+559:                 count += 1
      /*else*/ {
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
      /*else*/ {
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
      /*else*/ {
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
      /*else*/ {
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
      /*else*/ {
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
      /*else*/ {
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
      /*else*/ {
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
      /*else*/ {
        __pyx_v_count = (__pyx_v_count + 1);
+560:                 j += 1
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L8:;
    }
    __pyx_L5_break:;
  }
  __pyx_L3:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L8:;
    }
    __pyx_L5_break:;
  }
  __pyx_L3:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L8:;
    }
    __pyx_L5_break:;
  }
  __pyx_L3:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L8:;
    }
    __pyx_L5_break:;
  }
  __pyx_L3:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L8:;
    }
    __pyx_L5_break:;
  }
  __pyx_L3:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L8:;
    }
    __pyx_L5_break:;
  }
  __pyx_L3:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L8:;
    }
    __pyx_L5_break:;
  }
  __pyx_L3:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L8:;
    }
    __pyx_L5_break:;
  }
  __pyx_L3:;
 561: 
+562:     lindexer = np.empty(count, dtype=np.int64)
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_int64); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_13) < 0) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_11, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 562, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 562, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_int64); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_13) < 0) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_11, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 562, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 562, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_int64); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_13) < 0) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_11, __pyx_t_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 562, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 562, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_int64); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_13) < 0) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_11, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 562, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 562, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_int64); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_13) < 0) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_11, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 562, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 562, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_int64); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_13) < 0) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_11, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 562, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 562, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_int64); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_13) < 0) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_11, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 562, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 562, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_int64); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_13) < 0) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_11, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 562, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 562, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
+563:     rindexer = np.empty(count, dtype=np.int64)
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_dtype, __pyx_t_12) < 0) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 563, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_18, __pyx_t_17, __pyx_t_16);
      }
      __pyx_t_18 = __pyx_t_17 = __pyx_t_16 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 563, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_dtype, __pyx_t_12) < 0) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 563, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_18, __pyx_t_17, __pyx_t_16);
      }
      __pyx_t_18 = __pyx_t_17 = __pyx_t_16 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 563, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_empty); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_dtype, __pyx_t_12) < 0) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 563, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_18, __pyx_t_17, __pyx_t_16);
      }
      __pyx_t_18 = __pyx_t_17 = __pyx_t_16 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 563, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_dtype, __pyx_t_12) < 0) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 563, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_18, __pyx_t_17, __pyx_t_16);
      }
      __pyx_t_18 = __pyx_t_17 = __pyx_t_16 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 563, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_dtype, __pyx_t_12) < 0) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 563, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_18, __pyx_t_17, __pyx_t_16);
      }
      __pyx_t_18 = __pyx_t_17 = __pyx_t_16 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 563, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_dtype, __pyx_t_12) < 0) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 563, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_18, __pyx_t_17, __pyx_t_16);
      }
      __pyx_t_18 = __pyx_t_17 = __pyx_t_16 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 563, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_dtype, __pyx_t_12) < 0) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 563, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_18, __pyx_t_17, __pyx_t_16);
      }
      __pyx_t_18 = __pyx_t_17 = __pyx_t_16 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 563, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_13);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_dtype, __pyx_t_12) < 0) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 563, __pyx_L1_error)
  __pyx_t_14 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_18, __pyx_t_17, __pyx_t_16);
      }
      __pyx_t_18 = __pyx_t_17 = __pyx_t_16 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 563, __pyx_L1_error)
  }
  __pyx_t_14 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
+564:     result = np.empty(count, dtype=left.dtype)
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_empty); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12);
  __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 564, __pyx_L1_error)
  __pyx_t_19 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 564, __pyx_L1_error)
  }
  __pyx_t_19 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_empty); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12);
  __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 564, __pyx_L1_error)
  __pyx_t_19 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 564, __pyx_L1_error)
  }
  __pyx_t_19 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_empty); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12);
  __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 564, __pyx_L1_error)
  __pyx_t_19 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_object, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_object, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 564, __pyx_L1_error)
  }
  __pyx_t_19 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_empty); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12);
  __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 564, __pyx_L1_error)
  __pyx_t_19 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 564, __pyx_L1_error)
  }
  __pyx_t_19 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_empty); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12);
  __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 564, __pyx_L1_error)
  __pyx_t_19 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int16_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int16_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 564, __pyx_L1_error)
  }
  __pyx_t_19 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_empty); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12);
  __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 564, __pyx_L1_error)
  __pyx_t_19 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 564, __pyx_L1_error)
  }
  __pyx_t_19 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_empty); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12);
  __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 564, __pyx_L1_error)
  __pyx_t_19 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 564, __pyx_L1_error)
  }
  __pyx_t_19 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_empty); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12);
  __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 564, __pyx_L1_error)
  __pyx_t_19 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_18);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
      }
      __pyx_t_16 = __pyx_t_17 = __pyx_t_18 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 564, __pyx_L1_error)
  }
  __pyx_t_19 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
 565: 
 566:     # do it again, but populate the indexers / result
 567: 
+568:     i = 0
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
+569:     j = 0
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
+570:     count = 0
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
+571:     if nleft == 0:
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
+572:         for j in range(nright):
    __pyx_t_1 = __pyx_v_nright;
    __pyx_t_20 = __pyx_t_1;
    for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
      __pyx_v_j = __pyx_t_21;
/* … */
    __pyx_t_1 = __pyx_v_nright;
    __pyx_t_20 = __pyx_t_1;
    for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
      __pyx_v_j = __pyx_t_21;
/* … */
    __pyx_t_1 = __pyx_v_nright;
    __pyx_t_20 = __pyx_t_1;
    for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
      __pyx_v_j = __pyx_t_21;
/* … */
    __pyx_t_1 = __pyx_v_nright;
    __pyx_t_20 = __pyx_t_1;
    for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
      __pyx_v_j = __pyx_t_21;
/* … */
    __pyx_t_1 = __pyx_v_nright;
    __pyx_t_20 = __pyx_t_1;
    for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
      __pyx_v_j = __pyx_t_21;
/* … */
    __pyx_t_1 = __pyx_v_nright;
    __pyx_t_20 = __pyx_t_1;
    for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
      __pyx_v_j = __pyx_t_21;
/* … */
    __pyx_t_1 = __pyx_v_nright;
    __pyx_t_20 = __pyx_t_1;
    for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
      __pyx_v_j = __pyx_t_21;
/* … */
    __pyx_t_1 = __pyx_v_nright;
    __pyx_t_20 = __pyx_t_1;
    for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
      __pyx_v_j = __pyx_t_21;
+573:             lindexer[j] = -1
      __pyx_t_22 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_22 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_22 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_22 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_22 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_22 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_22 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_22 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1LL;
+574:             rindexer[j] = j
      __pyx_t_23 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_23 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_23 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_23 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_23 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_23 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_23 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_23 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
+575:             result[j] = right[j]
      __pyx_t_24 = __pyx_v_j;
      __pyx_t_25 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_right.diminfo[0].strides));
    }
/* … */
      __pyx_t_24 = __pyx_v_j;
      __pyx_t_25 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_right.diminfo[0].strides));
    }
/* … */
      __pyx_t_24 = __pyx_v_j;
      __pyx_t_8 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_right.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_8);
      __pyx_t_25 = __pyx_v_j;
      __pyx_t_26 = __Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_result.diminfo[0].strides);
      __Pyx_GOTREF(*__pyx_t_26);
      __Pyx_INCREF(__pyx_t_8); __Pyx_DECREF(*__pyx_t_26);
      *__pyx_t_26 = __pyx_t_8;
      __Pyx_GIVEREF(*__pyx_t_26);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
/* … */
      __pyx_t_24 = __pyx_v_j;
      __pyx_t_25 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_right.diminfo[0].strides));
    }
/* … */
      __pyx_t_24 = __pyx_v_j;
      __pyx_t_25 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_right.diminfo[0].strides));
    }
/* … */
      __pyx_t_24 = __pyx_v_j;
      __pyx_t_25 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_right.diminfo[0].strides));
    }
/* … */
      __pyx_t_24 = __pyx_v_j;
      __pyx_t_25 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_right.diminfo[0].strides));
    }
/* … */
      __pyx_t_24 = __pyx_v_j;
      __pyx_t_25 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_right.diminfo[0].strides));
    }
+576:     elif nright == 0:
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
+577:         for i in range(nleft):
    __pyx_t_1 = __pyx_v_nleft;
    __pyx_t_20 = __pyx_t_1;
    for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
      __pyx_v_i = __pyx_t_21;
/* … */
    __pyx_t_1 = __pyx_v_nleft;
    __pyx_t_20 = __pyx_t_1;
    for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
      __pyx_v_i = __pyx_t_21;
/* … */
    __pyx_t_1 = __pyx_v_nleft;
    __pyx_t_20 = __pyx_t_1;
    for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
      __pyx_v_i = __pyx_t_21;
/* … */
    __pyx_t_1 = __pyx_v_nleft;
    __pyx_t_20 = __pyx_t_1;
    for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
      __pyx_v_i = __pyx_t_21;
/* … */
    __pyx_t_1 = __pyx_v_nleft;
    __pyx_t_20 = __pyx_t_1;
    for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
      __pyx_v_i = __pyx_t_21;
/* … */
    __pyx_t_1 = __pyx_v_nleft;
    __pyx_t_20 = __pyx_t_1;
    for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
      __pyx_v_i = __pyx_t_21;
/* … */
    __pyx_t_1 = __pyx_v_nleft;
    __pyx_t_20 = __pyx_t_1;
    for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
      __pyx_v_i = __pyx_t_21;
/* … */
    __pyx_t_1 = __pyx_v_nleft;
    __pyx_t_20 = __pyx_t_1;
    for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
      __pyx_v_i = __pyx_t_21;
+578:             lindexer[i] = i
      __pyx_t_26 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
      __pyx_t_26 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
      __pyx_t_27 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
      __pyx_t_26 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
      __pyx_t_26 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
      __pyx_t_26 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
      __pyx_t_26 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
      __pyx_t_26 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
+579:             rindexer[i] = -1
      __pyx_t_27 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_27 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_28 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_27 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_27 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_27 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_27 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
      __pyx_t_27 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_27, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
+580:             result[i] = left[i]
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_29 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_29, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left.diminfo[0].strides));
    }
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_29 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_29, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left.diminfo[0].strides));
    }
/* … */
      __pyx_t_29 = __pyx_v_i;
      __pyx_t_8 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_29, __pyx_pybuffernd_left.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_8);
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_26 = __Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_result.diminfo[0].strides);
      __Pyx_GOTREF(*__pyx_t_26);
      __Pyx_INCREF(__pyx_t_8); __Pyx_DECREF(*__pyx_t_26);
      *__pyx_t_26 = __pyx_t_8;
      __Pyx_GIVEREF(*__pyx_t_26);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_29 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_29, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left.diminfo[0].strides));
    }
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_29 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_29, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left.diminfo[0].strides));
    }
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_29 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_29, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left.diminfo[0].strides));
    }
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_29 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_29, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left.diminfo[0].strides));
    }
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_29 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_29, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left.diminfo[0].strides));
    }
 581:     else:
+582:         while True:
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
+583:             if i == nleft:
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
+584:                 while j < nright:
        while (1) {
          __pyx_t_2 = ((__pyx_v_j < __pyx_v_nright) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_j < __pyx_v_nright) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_j < __pyx_v_nright) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_j < __pyx_v_nright) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_j < __pyx_v_nright) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_j < __pyx_v_nright) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_j < __pyx_v_nright) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_j < __pyx_v_nright) != 0);
          if (!__pyx_t_2) break;
+585:                     lindexer[count] = -1
          __pyx_t_30 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1LL;
/* … */
          __pyx_t_30 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1LL;
/* … */
          __pyx_t_31 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1LL;
/* … */
          __pyx_t_30 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1LL;
/* … */
          __pyx_t_30 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1LL;
/* … */
          __pyx_t_30 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1LL;
/* … */
          __pyx_t_30 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1LL;
/* … */
          __pyx_t_30 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1LL;
+586:                     rindexer[count] = j
          __pyx_t_31 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
          __pyx_t_31 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
          __pyx_t_32 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
          __pyx_t_31 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
          __pyx_t_31 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
          __pyx_t_31 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
          __pyx_t_31 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
          __pyx_t_31 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
+587:                     result[count] = right[j]
          __pyx_t_32 = __pyx_v_j;
          __pyx_t_33 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
          __pyx_t_32 = __pyx_v_j;
          __pyx_t_33 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
          __pyx_t_33 = __pyx_v_j;
          __pyx_t_8 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_8);
          __pyx_t_34 = __pyx_v_count;
          __pyx_t_26 = __Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_result.diminfo[0].strides);
          __Pyx_GOTREF(*__pyx_t_26);
          __Pyx_INCREF(__pyx_t_8); __Pyx_DECREF(*__pyx_t_26);
          *__pyx_t_26 = __pyx_t_8;
          __Pyx_GIVEREF(*__pyx_t_26);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
          __pyx_t_32 = __pyx_v_j;
          __pyx_t_33 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
          __pyx_t_32 = __pyx_v_j;
          __pyx_t_33 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
          __pyx_t_32 = __pyx_v_j;
          __pyx_t_33 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
          __pyx_t_32 = __pyx_v_j;
          __pyx_t_33 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
          __pyx_t_32 = __pyx_v_j;
          __pyx_t_33 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_right.diminfo[0].strides));
+588:                     count += 1
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
+589:                     j += 1
          __pyx_v_j = (__pyx_v_j + 1);
        }
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
        }
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
        }
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
        }
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
        }
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
        }
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
        }
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
        }
+590:                 break
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
+591:             if j == nright:
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
+592:                 while i < nleft:
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
+593:                     lindexer[count] = i
          __pyx_t_34 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_34 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_35 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_34 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_34 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_34 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_34 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_34 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
+594:                     rindexer[count] = -1
          __pyx_t_35 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
          __pyx_t_35 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
          __pyx_t_36 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
          __pyx_t_35 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
          __pyx_t_35 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
          __pyx_t_35 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
          __pyx_t_35 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
          __pyx_t_35 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
+595:                     result[count] = left[i]
          __pyx_t_36 = __pyx_v_i;
          __pyx_t_37 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_36 = __pyx_v_i;
          __pyx_t_37 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_37 = __pyx_v_i;
          __pyx_t_8 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_left.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_8);
          __pyx_t_38 = __pyx_v_count;
          __pyx_t_26 = __Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_result.diminfo[0].strides);
          __Pyx_GOTREF(*__pyx_t_26);
          __Pyx_INCREF(__pyx_t_8); __Pyx_DECREF(*__pyx_t_26);
          *__pyx_t_26 = __pyx_t_8;
          __Pyx_GIVEREF(*__pyx_t_26);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
          __pyx_t_36 = __pyx_v_i;
          __pyx_t_37 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_36 = __pyx_v_i;
          __pyx_t_37 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_36 = __pyx_v_i;
          __pyx_t_37 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_36 = __pyx_v_i;
          __pyx_t_37 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_36 = __pyx_v_i;
          __pyx_t_37 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_left.diminfo[0].strides));
+596:                     count += 1
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
+597:                     i += 1
          __pyx_v_i = (__pyx_v_i + 1);
        }
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
        }
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
        }
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
        }
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
        }
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
        }
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
        }
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
        }
+598:                 break
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
 599: 
+600:             lval = left[i]
      __pyx_t_38 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_38 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_8 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_left.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_8);
      __Pyx_XDECREF_SET(__pyx_v_lval, __pyx_t_8);
      __pyx_t_8 = 0;
/* … */
      __pyx_t_38 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_38 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_38 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_38 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_38 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_left.diminfo[0].strides));
+601:             rval = right[j]
      __pyx_t_39 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_39 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_40 = __pyx_v_j;
      __pyx_t_8 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_right.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_8);
      __Pyx_XDECREF_SET(__pyx_v_rval, __pyx_t_8);
      __pyx_t_8 = 0;
/* … */
      __pyx_t_39 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_39 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_39 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_39 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_39 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right.diminfo[0].strides));
 602: 
+603:             if lval == rval:
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_8 = PyObject_RichCompare(__pyx_v_lval, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 603, __pyx_L1_error)
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 603, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
+604:                 lindexer[count] = i
        __pyx_t_40 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_40 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_41 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_40 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_40 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_40 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_40 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_40 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
+605:                 rindexer[count] = j
        __pyx_t_41 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_41 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_42 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_42, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_41 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_41 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_41 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_41 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_41 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
+606:                 result[count] = lval
        __pyx_t_42 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_42, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_42 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_42, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_43 = __pyx_v_count;
        __pyx_t_26 = __Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_43, __pyx_pybuffernd_result.diminfo[0].strides);
        __Pyx_GOTREF(*__pyx_t_26);
        __Pyx_INCREF(__pyx_v_lval); __Pyx_DECREF(*__pyx_t_26);
        *__pyx_t_26 = __pyx_v_lval;
        __Pyx_GIVEREF(*__pyx_t_26);
/* … */
        __pyx_t_42 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_42, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_42 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_42, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_42 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_42, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_42 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_42, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_42 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_42, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
+607:                 count += 1
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
+608:                 if i < nleft - 1:
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
+609:                     if j < nright - 1 and right[j + 1] == rval:
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L31_bool_binop_done;
          }
          __pyx_t_43 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_43, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L31_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L30;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L31_bool_binop_done;
          }
          __pyx_t_43 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_43, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L31_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L30;
          }
/* … */
          __pyx_t_6 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_6) {
          } else {
            __pyx_t_2 = __pyx_t_6;
            goto __pyx_L31_bool_binop_done;
          }
          __pyx_t_44 = (__pyx_v_j + 1);
          __pyx_t_8 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_44, __pyx_pybuffernd_right.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_8);
          __pyx_t_12 = PyObject_RichCompare(__pyx_t_8, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 609, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 609, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_2 = __pyx_t_6;
          __pyx_L31_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L30;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L31_bool_binop_done;
          }
          __pyx_t_43 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_43, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L31_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L30;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L31_bool_binop_done;
          }
          __pyx_t_43 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_43, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L31_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L30;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L31_bool_binop_done;
          }
          __pyx_t_43 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_43, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L31_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L30;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L31_bool_binop_done;
          }
          __pyx_t_43 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_43, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L31_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L30;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L31_bool_binop_done;
          }
          __pyx_t_43 = (__pyx_v_j + 1);
          __pyx_t_5 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_43, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_5;
          __pyx_L31_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L30;
          }
+610:                         j += 1
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
 611:                     else:
+612:                         i += 1
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
+613:                         if left[i] != rval:
            __pyx_t_44 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_44, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L30:;
/* … */
            __pyx_t_44 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_44, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L30:;
/* … */
            __pyx_t_45 = __pyx_v_i;
            __pyx_t_12 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_45, __pyx_pybuffernd_left.diminfo[0].strides);
            __Pyx_INCREF((PyObject*)__pyx_t_12);
            __pyx_t_8 = PyObject_RichCompare(__pyx_t_12, __pyx_v_rval, Py_NE); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 613, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 613, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L30:;
/* … */
            __pyx_t_44 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_44, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L30:;
/* … */
            __pyx_t_44 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_44, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L30:;
/* … */
            __pyx_t_44 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_44, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L30:;
/* … */
            __pyx_t_44 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_44, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L30:;
/* … */
            __pyx_t_44 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_44, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L30:;
+614:                             j += 1
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
+615:                 elif j < nright - 1:
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
+616:                     j += 1
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
+617:                     if lval != right[j]:
          __pyx_t_45 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_45, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_45 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_45, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_46 = __pyx_v_j;
          __pyx_t_8 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_46, __pyx_pybuffernd_right.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_8);
          __pyx_t_12 = PyObject_RichCompare(__pyx_v_lval, __pyx_t_8, Py_NE); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 617, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 617, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_45 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_45, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_45 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_45, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_45 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_45, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_45 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_45, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_45 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_45, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
+618:                         i += 1
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
 619:                 else:
 620:                     # end of the road
+621:                     break
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L29:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L29:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L29:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L29:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L29:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L29:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L29:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L29:;
+622:             elif lval < rval:
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_12 = PyObject_RichCompare(__pyx_v_lval, __pyx_v_rval, Py_LT); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 622, __pyx_L1_error)
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 622, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
+623:                 lindexer[count] = i
        __pyx_t_46 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_46, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_46 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_46, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_47 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_47, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_46 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_46, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_46 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_46, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_46 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_46, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_46 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_46, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_46 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_46, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
+624:                 rindexer[count] = -1
        __pyx_t_47 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_47, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_47 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_47, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_48 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_48, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_47 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_47, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_47 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_47, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_47 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_47, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_47 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_47, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_47 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_47, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1LL;
+625:                 result[count] = lval
        __pyx_t_48 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_48, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_48 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_48, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_49 = __pyx_v_count;
        __pyx_t_26 = __Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_49, __pyx_pybuffernd_result.diminfo[0].strides);
        __Pyx_GOTREF(*__pyx_t_26);
        __Pyx_INCREF(__pyx_v_lval); __Pyx_DECREF(*__pyx_t_26);
        *__pyx_t_26 = __pyx_v_lval;
        __Pyx_GIVEREF(*__pyx_t_26);
/* … */
        __pyx_t_48 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_48, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_48 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_48, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_48 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_48, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_48 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_48, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_48 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_48, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
+626:                 count += 1
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
+627:                 i += 1
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
 628:             else:
+629:                 lindexer[count] = -1
      /*else*/ {
        __pyx_t_49 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_49, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1LL;
/* … */
      /*else*/ {
        __pyx_t_49 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_49, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1LL;
/* … */
      /*else*/ {
        __pyx_t_50 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_50, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1LL;
/* … */
      /*else*/ {
        __pyx_t_49 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_49, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1LL;
/* … */
      /*else*/ {
        __pyx_t_49 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_49, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1LL;
/* … */
      /*else*/ {
        __pyx_t_49 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_49, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1LL;
/* … */
      /*else*/ {
        __pyx_t_49 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_49, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1LL;
/* … */
      /*else*/ {
        __pyx_t_49 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_49, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1LL;
+630:                 rindexer[count] = j
        __pyx_t_50 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_50, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_50 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_50, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_51 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_51, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_50 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_50, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_50 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_50, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_50 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_50, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_50 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_50, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_50 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_50, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
+631:                 result[count] = rval
        __pyx_t_51 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_51, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_rval;
/* … */
        __pyx_t_51 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_51, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_rval;
/* … */
        __pyx_t_52 = __pyx_v_count;
        __pyx_t_26 = __Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_52, __pyx_pybuffernd_result.diminfo[0].strides);
        __Pyx_GOTREF(*__pyx_t_26);
        __Pyx_INCREF(__pyx_v_rval); __Pyx_DECREF(*__pyx_t_26);
        *__pyx_t_26 = __pyx_v_rval;
        __Pyx_GIVEREF(*__pyx_t_26);
/* … */
        __pyx_t_51 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_51, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_rval;
/* … */
        __pyx_t_51 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_51, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_rval;
/* … */
        __pyx_t_51 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_51, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_rval;
/* … */
        __pyx_t_51 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_51, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_rval;
/* … */
        __pyx_t_51 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_51, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_rval;
+632:                 count += 1
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
+633:                 j += 1
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L28:;
    }
    __pyx_L21_break:;
  }
  __pyx_L15:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L28:;
    }
    __pyx_L21_break:;
  }
  __pyx_L15:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L28:;
    }
    __pyx_L21_break:;
  }
  __pyx_L15:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L28:;
    }
    __pyx_L21_break:;
  }
  __pyx_L15:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L28:;
    }
    __pyx_L21_break:;
  }
  __pyx_L15:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L28:;
    }
    __pyx_L21_break:;
  }
  __pyx_L15:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L28:;
    }
    __pyx_L21_break:;
  }
  __pyx_L15:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L28:;
    }
    __pyx_L21_break:;
  }
  __pyx_L15:;
 634: 
+635:     return result, lindexer, rindexer
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __Pyx_GIVEREF((PyObject *)__pyx_v_result);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF((PyObject *)__pyx_v_lindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_lindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF((PyObject *)__pyx_v_rindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_rindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __Pyx_GIVEREF((PyObject *)__pyx_v_result);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF((PyObject *)__pyx_v_lindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_lindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF((PyObject *)__pyx_v_rindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_rindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_12 = PyTuple_New(3); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __Pyx_GIVEREF((PyObject *)__pyx_v_result);
  PyTuple_SET_ITEM(__pyx_t_12, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF((PyObject *)__pyx_v_lindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_lindexer);
  PyTuple_SET_ITEM(__pyx_t_12, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF((PyObject *)__pyx_v_rindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_rindexer);
  PyTuple_SET_ITEM(__pyx_t_12, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_12;
  __pyx_t_12 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __Pyx_GIVEREF((PyObject *)__pyx_v_result);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF((PyObject *)__pyx_v_lindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_lindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF((PyObject *)__pyx_v_rindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_rindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __Pyx_GIVEREF((PyObject *)__pyx_v_result);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF((PyObject *)__pyx_v_lindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_lindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF((PyObject *)__pyx_v_rindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_rindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __Pyx_GIVEREF((PyObject *)__pyx_v_result);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF((PyObject *)__pyx_v_lindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_lindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF((PyObject *)__pyx_v_rindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_rindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __Pyx_GIVEREF((PyObject *)__pyx_v_result);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF((PyObject *)__pyx_v_lindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_lindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF((PyObject *)__pyx_v_rindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_rindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_result);
  __Pyx_GIVEREF((PyObject *)__pyx_v_result);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF((PyObject *)__pyx_v_lindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_lindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF((PyObject *)__pyx_v_rindexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_rindexer);
  PyTuple_SET_ITEM(__pyx_t_9, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
 636: 
 637: 
 638: # ----------------------------------------------------------------------
 639: # asof_join_by
 640: # ----------------------------------------------------------------------
 641: 
 642: from pandas._libs.hashtable cimport (
 643:     HashTable, PyObjectHashTable, UInt64HashTable, Int64HashTable)
 644: 
 645: ctypedef fused asof_t:
 646:     uint8_t
 647:     uint16_t
 648:     uint32_t
 649:     uint64_t
 650:     int8_t
 651:     int16_t
 652:     int32_t
 653:     int64_t
 654:     float
 655:     float64_t
 656: 
 657: ctypedef fused by_t:
 658:     object
 659:     int64_t
 660:     uint64_t
 661: 
 662: 
+663: def asof_join_backward_on_X_by_Y(asof_t[:] left_values,
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_17asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_17asof_join_backward_on_X_by_Y = {"asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pandas_5_libs_4join_17asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6pandas_5_libs_4join_17asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  PyObject *__pyx_v__fused_sigindex = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,&__pyx_n_s_fused_sigindex,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,&__pyx_n_s_fused_sigindex,0};
    #endif
    PyObject* values[5] = {0,0,0,0,0};
    __pyx_defaults4 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults4, __pyx_self);
    values[4] = __pyx_dynamic_args->__pyx_arg__fused_sigindex;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_signatures)) != 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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_args)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_defaults)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fused_sigindex);
          if (value) { values[4] = 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, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
    __pyx_v__fused_sigindex = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_16asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults, __pyx_v__fused_sigindex);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_16asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults, PyObject *__pyx_v__fused_sigindex) {
  PyObject *__pyx_v_search_list = 0;
  PyObject *__pyx_v_sn = 0;
  PyObject *__pyx_v_sigindex_node = 0;
  PyObject *__pyx_v_dest_sig = NULL;
  PyTypeObject *__pyx_v_ndarray = 0;
  __Pyx_memviewslice __pyx_v_memslice;
  Py_ssize_t __pyx_v_itemsize;
  int __pyx_v_dtype_signed;
  char __pyx_v_kind;
  int __pyx_v____pyx_uint8_t_is_signed;
  int __pyx_v____pyx_uint16_t_is_signed;
  int __pyx_v____pyx_uint32_t_is_signed;
  int __pyx_v____pyx_uint64_t_is_signed;
  int __pyx_v____pyx_int8_t_is_signed;
  int __pyx_v____pyx_int16_t_is_signed;
  int __pyx_v____pyx_int32_t_is_signed;
  int __pyx_v____pyx_int64_t_is_signed;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_dtype = NULL;
  PyObject *__pyx_v_arg_base = NULL;
  PyObject *__pyx_v_sig = NULL;
  PyObject *__pyx_v_sig_series = NULL;
  PyObject *__pyx_v_sig_type = NULL;
  PyObject *__pyx_v_sigindex_matches = NULL;
  PyObject *__pyx_v_sigindex_candidates = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_v_found_matches = NULL;
  PyObject *__pyx_v_found_candidates = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  { Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
      __Pyx_INCREF(Py_None);
      __Pyx_GIVEREF(Py_None);
      PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
    }
  }
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  __pyx_v____pyx_uint8_t_is_signed = (!((((__pyx_t_5numpy_uint8_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint16_t_is_signed = (!((((__pyx_t_5numpy_uint16_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint32_t_is_signed = (!((((__pyx_t_5numpy_uint32_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
  __pyx_v____pyx_int8_t_is_signed = (!((((__pyx_t_5numpy_int8_t)-1L) > 0) != 0));
  __pyx_v____pyx_int16_t_is_signed = (!((((__pyx_t_5numpy_int16_t)-1L) > 0) != 0));
  __pyx_v____pyx_int32_t_is_signed = (!((((__pyx_t_5numpy_int32_t)-1L) > 0) != 0));
  __pyx_v____pyx_int64_t_is_signed = (!((((__pyx_t_5numpy_int64_t)-1L) > 0) != 0));
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 663, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 663, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 663, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 663, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_left_values, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (likely(__pyx_t_2)) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 663, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_left_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 663, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 663, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_4);
    __Pyx_GIVEREF(__pyx_int_4);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_4);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 663, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_dtype = __pyx_t_6;
        __pyx_t_6 = 0;
        goto __pyx_L12;
      }
      __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg); 
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_arg_base = __pyx_t_6;
        __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
        __pyx_t_2 = (__pyx_t_3 != 0);
        if (__pyx_t_2) {
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_v_dtype = __pyx_t_6;
          __pyx_t_6 = 0;
          goto __pyx_L13;
        }
        /*else*/ {
          __Pyx_INCREF(Py_None);
          __pyx_v_dtype = Py_None;
        }
        __pyx_L13:;
        goto __pyx_L12;
      }
      /*else*/ {
        __Pyx_INCREF(Py_None);
        __pyx_v_dtype = Py_None;
      }
      __pyx_L12:;
      __pyx_v_itemsize = -1L;
      __pyx_t_2 = (__pyx_v_dtype != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_itemsize = __pyx_t_5;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 663, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_kind = __pyx_t_7;
        __pyx_v_dtype_signed = (__pyx_v_kind == 'i');
        switch (__pyx_v_kind) {
          case 'i':
          case 'u':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L16_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L20_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L24_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L28_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L32_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L36_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L40_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L44_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'f':
          __pyx_t_2 = (((sizeof(float)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L48_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L48_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L51_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L51_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'c':
          break;
          case 'O':
          break;
          default: break;
        }
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L54_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L54_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L58_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L58_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L62_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L62_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L66_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L66_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L70_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L70_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L74_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L74_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L78_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L78_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L82_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L82_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L86_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(float))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L86_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_float(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L90_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L90_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 663, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 663, __pyx_L1_error)
  __pyx_t_3 = ((2 < __pyx_t_5) != 0);
  if (__pyx_t_3) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 663, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L93;
  }
  __pyx_t_2 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_2 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L94_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 663, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_left_by_values, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
  __pyx_t_2 = (__pyx_t_4 != 0);
  __pyx_t_3 = __pyx_t_2;
  __pyx_L94_bool_binop_done:;
  if (likely(__pyx_t_3)) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 663, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_left_by_values); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L93;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 663, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 663, __pyx_L1_error)
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_int_4);
    __Pyx_GIVEREF(__pyx_int_4);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_4);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 663, __pyx_L1_error)
  }
  __pyx_L93:;
  while (1) {
    __pyx_t_3 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
        __pyx_t_1 = 0;
        goto __pyx_L99;
      }
      __pyx_t_3 = __pyx_memoryview_check(__pyx_v_arg); 
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_XDECREF_SET(__pyx_v_arg_base, __pyx_t_1);
        __pyx_t_1 = 0;
        __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
        __pyx_t_3 = (__pyx_t_2 != 0);
        if (__pyx_t_3) {
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
          __pyx_t_1 = 0;
          goto __pyx_L100;
        }
        /*else*/ {
          __Pyx_INCREF(Py_None);
          __Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
        }
        __pyx_L100:;
        goto __pyx_L99;
      }
      /*else*/ {
        __Pyx_INCREF(Py_None);
        __Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
      }
      __pyx_L99:;
      __pyx_v_itemsize = -1L;
      __pyx_t_3 = (__pyx_v_dtype != Py_None);
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_v_itemsize = __pyx_t_5;
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_1); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 663, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_v_kind = __pyx_t_7;
        __pyx_v_dtype_signed = (__pyx_v_kind == 'i');
        switch (__pyx_v_kind) {
          case 'i':
          case 'u':
          __pyx_t_3 = (((sizeof(__pyx_t_5numpy_int64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L103_bool_binop_done;
          }
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L103_bool_binop_done;
          }
          __pyx_t_3 = ((!((__pyx_v____pyx_int64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L103_bool_binop_done:;
          if (__pyx_t_2) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
            goto __pyx_L97_break;
          }
          __pyx_t_3 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L107_bool_binop_done;
          }
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L107_bool_binop_done;
          }
          __pyx_t_3 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L107_bool_binop_done:;
          if (__pyx_t_2) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
            goto __pyx_L97_break;
          }
          break;
          case 'f':
          break;
          case 'c':
          break;
          case 'O':
          break;
          default: break;
        }
      }
    }
    __pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L111_bool_binop_done;
    }
    __pyx_t_3 = ((__pyx_v_itemsize == (sizeof(void *))) != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L111_bool_binop_done:;
    if (__pyx_t_2) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_object(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_2 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_2) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_object, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
        goto __pyx_L97_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L115_bool_binop_done;
    }
    __pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int64_t))) != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L115_bool_binop_done:;
    if (__pyx_t_2) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_2 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_2) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
        goto __pyx_L97_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L119_bool_binop_done;
    }
    __pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L119_bool_binop_done:;
    if (__pyx_t_2) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_2 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_2) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
        goto __pyx_L97_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
    goto __pyx_L97_break;
  }
  __pyx_L97_break:;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v__fused_sigindex); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (__pyx_t_3) {
    __pyx_t_5 = 0;
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
      __PYX_ERR(0, 663, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_1);
    __pyx_t_1 = __pyx_t_6;
    __pyx_t_6 = 0;
    while (1) {
      __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_9, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_10);
      if (unlikely(__pyx_t_11 == 0)) break;
      if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 663, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
      __pyx_t_6 = 0;
      if (!(likely(PyDict_CheckExact(__pyx_v__fused_sigindex))||((__pyx_v__fused_sigindex) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_v__fused_sigindex))), 0))) __PYX_ERR(0, 663, __pyx_L1_error)
      __pyx_t_6 = __pyx_v__fused_sigindex;
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_sigindex_node, ((PyObject*)__pyx_t_6));
      __pyx_t_6 = 0;
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_14 = NULL;
      __pyx_t_11 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
        __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
        if (likely(__pyx_t_14)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_14);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_13, function);
          __pyx_t_11 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_14, __pyx_kp_s__2};
        __pyx_t_12 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_11, 1+__pyx_t_11);
        __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_12 = NULL;
      __pyx_t_15 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
        __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
        if (likely(__pyx_t_12)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_12);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_13, function);
          __pyx_t_15 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_kp_s__3};
        __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_15, 1+__pyx_t_15);
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __Pyx_XDECREF_SET(__pyx_v_sig_series, __pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_GetSlice(__pyx_v_sig_series, 0, -1L, NULL, NULL, &__pyx_slice__4, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
        __pyx_t_13 = __pyx_t_6; __Pyx_INCREF(__pyx_t_13); __pyx_t_16 = 0;
        __pyx_t_17 = NULL;
      } else {
        __pyx_t_16 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_17 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 663, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      for (;;) {
        if (likely(!__pyx_t_17)) {
          if (likely(PyList_CheckExact(__pyx_t_13))) {
            if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_13)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_6 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_6); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
            #else
            __pyx_t_6 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          } else {
            if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_6); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
            #else
            __pyx_t_6 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          }
        } else {
          __pyx_t_6 = __pyx_t_17(__pyx_t_13);
          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, 663, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_6);
        }
        __Pyx_XDECREF_SET(__pyx_v_sig_type, __pyx_t_6);
        __pyx_t_6 = 0;
        if (unlikely(__pyx_v_sigindex_node == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
          __PYX_ERR(0, 663, __pyx_L1_error)
        }
        __pyx_t_3 = (__Pyx_PyDict_ContainsTF(__pyx_v_sig_type, __pyx_v_sigindex_node, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
        __pyx_t_2 = (__pyx_t_3 != 0);
        if (__pyx_t_2) {
          __pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (unlikely(__pyx_v_sigindex_node == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 663, __pyx_L1_error)
          }
          if (unlikely(PyDict_SetItem(__pyx_v_sigindex_node, __pyx_v_sig_type, __pyx_t_6) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_DECREF_SET(__pyx_v_sigindex_node, __pyx_t_6);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          goto __pyx_L127;
        }
        /*else*/ {
          if (unlikely(__pyx_v_sigindex_node == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 663, __pyx_L1_error)
          }
          __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_sigindex_node, __pyx_v_sig_type); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (!(likely(PyDict_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_6))), 0))) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_DECREF_SET(__pyx_v_sigindex_node, ((PyObject*)__pyx_t_6));
          __pyx_t_6 = 0;
        }
        __pyx_L127:;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      if (unlikely(__pyx_v_sigindex_node == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(0, 663, __pyx_L1_error)
      }
      __pyx_t_13 = __Pyx_GetItemInt(__pyx_v_sig_series, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      if (unlikely(PyDict_SetItem(__pyx_v_sigindex_node, __pyx_t_13, __pyx_v_sig) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_sigindex_matches = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v__fused_sigindex);
  __Pyx_GIVEREF(__pyx_v__fused_sigindex);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v__fused_sigindex);
  __pyx_v_sigindex_candidates = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_v_dest_sig; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0;
  for (;;) {
    if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_13 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_13); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
    #else
    __pyx_t_13 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_13);
    __pyx_t_13 = 0;
    __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_XDECREF_SET(__pyx_v_found_matches, ((PyObject*)__pyx_t_13));
    __pyx_t_13 = 0;
    __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_XDECREF_SET(__pyx_v_found_candidates, ((PyObject*)__pyx_t_13));
    __pyx_t_13 = 0;
    __pyx_t_2 = (__pyx_v_dst_type == Py_None);
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      __pyx_t_13 = __pyx_v_sigindex_matches; __Pyx_INCREF(__pyx_t_13); __pyx_t_5 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_5); __Pyx_INCREF(__pyx_t_6); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_13, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
        if (!(likely(PyDict_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_6))), 0))) __PYX_ERR(0, 663, __pyx_L1_error)
        __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_6));
        __pyx_t_6 = 0;
        if (unlikely(__pyx_v_sn == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
          __PYX_ERR(0, 663, __pyx_L1_error)
        }
        __pyx_t_6 = __Pyx_PyDict_Values(__pyx_v_sn); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_18 = __Pyx_PyList_Extend(__pyx_v_found_matches, __pyx_t_6); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 663, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_13 = __pyx_v_sigindex_candidates; __Pyx_INCREF(__pyx_t_13); __pyx_t_5 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_5); __Pyx_INCREF(__pyx_t_6); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_13, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
        if (!(likely(PyDict_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_6))), 0))) __PYX_ERR(0, 663, __pyx_L1_error)
        __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_6));
        __pyx_t_6 = 0;
        if (unlikely(__pyx_v_sn == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
          __PYX_ERR(0, 663, __pyx_L1_error)
        }
        __pyx_t_6 = __Pyx_PyDict_Values(__pyx_v_sn); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_18 = __Pyx_PyList_Extend(__pyx_v_found_candidates, __pyx_t_6); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 663, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      goto __pyx_L130;
    }
    /*else*/ {
      __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_INCREF(__pyx_v_sigindex_matches);
      __Pyx_GIVEREF(__pyx_v_sigindex_matches);
      PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_v_sigindex_matches);
      __Pyx_INCREF(__pyx_v_sigindex_candidates);
      __Pyx_GIVEREF(__pyx_v_sigindex_candidates);
      PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_v_sigindex_candidates);
      __pyx_t_6 = __pyx_t_13; __Pyx_INCREF(__pyx_t_6); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      for (;;) {
        if (__pyx_t_5 >= 2) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_5); __Pyx_INCREF(__pyx_t_13); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
        #else
        __pyx_t_13 = PySequence_ITEM(__pyx_t_6, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        #endif
        __Pyx_XDECREF_SET(__pyx_v_search_list, ((PyObject*)__pyx_t_13));
        __pyx_t_13 = 0;
        if (unlikely(__pyx_v_search_list == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
          __PYX_ERR(0, 663, __pyx_L1_error)
        }
        __pyx_t_13 = __pyx_v_search_list; __Pyx_INCREF(__pyx_t_13); __pyx_t_16 = 0;
        for (;;) {
          if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_13)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_12 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_12); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
          #else
          __pyx_t_12 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          #endif
          if (!(likely(PyDict_CheckExact(__pyx_t_12))||((__pyx_t_12) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_12))), 0))) __PYX_ERR(0, 663, __pyx_L1_error)
          __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_12));
          __pyx_t_12 = 0;
          if (unlikely(__pyx_v_sn == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
            __PYX_ERR(0, 663, __pyx_L1_error)
          }
          __pyx_t_3 = (__Pyx_PyDict_ContainsTF(__pyx_v_dst_type, __pyx_v_sn, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
          __pyx_t_2 = (__pyx_t_3 != 0);
          if (__pyx_t_2) {
            if (unlikely(__pyx_v_sn == Py_None)) {
              PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
              __PYX_ERR(0, 663, __pyx_L1_error)
            }
            __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_sn, __pyx_v_dst_type); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_found_matches, __pyx_t_12); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 663, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          }
        }
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __pyx_L130:;
    __Pyx_INCREF(__pyx_v_found_matches);
    __Pyx_DECREF_SET(__pyx_v_sigindex_matches, __pyx_v_found_matches);
    __Pyx_INCREF(__pyx_v_found_candidates);
    __Pyx_DECREF_SET(__pyx_v_sigindex_candidates, __pyx_v_found_candidates);
    __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_found_matches) != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L141_bool_binop_done;
    }
    __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_found_candidates) != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L141_bool_binop_done:;
    __pyx_t_3 = ((!__pyx_t_2) != 0);
    if (__pyx_t_3) {
      goto __pyx_L129_break;
    }
  }
  __pyx_L129_break:;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_INCREF(__pyx_v_sigindex_matches);
  __pyx_v_candidates = __pyx_v_sigindex_matches;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (unlikely(__pyx_t_2)) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 663, __pyx_L1_error)
  }
  __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 663, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_9 > 1) != 0);
  if (unlikely(__pyx_t_2)) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 663, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 663, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_search_list);
  __Pyx_XDECREF(__pyx_v_sn);
  __Pyx_XDECREF(__pyx_v_sigindex_node);
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF((PyObject *)__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_dtype);
  __Pyx_XDECREF(__pyx_v_arg_base);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_sig_series);
  __Pyx_XDECREF(__pyx_v_sig_type);
  __Pyx_XDECREF(__pyx_v_sigindex_matches);
  __Pyx_XDECREF(__pyx_v_sigindex_candidates);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_found_matches);
  __Pyx_XDECREF(__pyx_v_found_candidates);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_412__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults35, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults35, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults35, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults35, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_0_0__pyx_pw_6pandas_5_libs_4join_101asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_6pandas_5_libs_4join_101asof_join_backward_on_X_by_Y = {"__pyx_fuse_0_0asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_0__pyx_pw_6pandas_5_libs_4join_101asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_0_0__pyx_pw_6pandas_5_libs_4join_101asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults35 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults35, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_100asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_100asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint8_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_414__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults36, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults36, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults36, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults36, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_0_1__pyx_pw_6pandas_5_libs_4join_103asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_6pandas_5_libs_4join_103asof_join_backward_on_X_by_Y = {"__pyx_fuse_0_1asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_1__pyx_pw_6pandas_5_libs_4join_103asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_0_1__pyx_pw_6pandas_5_libs_4join_103asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults36 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults36, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_102asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_102asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint8_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_416__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults37, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults37, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults37, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults37, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_0_2__pyx_pw_6pandas_5_libs_4join_105asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_2__pyx_mdef_6pandas_5_libs_4join_105asof_join_backward_on_X_by_Y = {"__pyx_fuse_0_2asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_2__pyx_pw_6pandas_5_libs_4join_105asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_0_2__pyx_pw_6pandas_5_libs_4join_105asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults37 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults37, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_104asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_104asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint8_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_2asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_418__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults38, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults38, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults38, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults38, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_1_0__pyx_pw_6pandas_5_libs_4join_107asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_6pandas_5_libs_4join_107asof_join_backward_on_X_by_Y = {"__pyx_fuse_1_0asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_0__pyx_pw_6pandas_5_libs_4join_107asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_1_0__pyx_pw_6pandas_5_libs_4join_107asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults38 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults38, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_106asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_106asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint16_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_420__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults39, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults39, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults39, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults39, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_1_1__pyx_pw_6pandas_5_libs_4join_109asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_6pandas_5_libs_4join_109asof_join_backward_on_X_by_Y = {"__pyx_fuse_1_1asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_1__pyx_pw_6pandas_5_libs_4join_109asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_1_1__pyx_pw_6pandas_5_libs_4join_109asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults39 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults39, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_108asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_108asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint16_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_422__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults40, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults40, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults40, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults40, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_1_2__pyx_pw_6pandas_5_libs_4join_111asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_2__pyx_mdef_6pandas_5_libs_4join_111asof_join_backward_on_X_by_Y = {"__pyx_fuse_1_2asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_2__pyx_pw_6pandas_5_libs_4join_111asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_1_2__pyx_pw_6pandas_5_libs_4join_111asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults40 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults40, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_110asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_110asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint16_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_2asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_424__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults41, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults41, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults41, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults41, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_2_0__pyx_pw_6pandas_5_libs_4join_113asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2_0__pyx_mdef_6pandas_5_libs_4join_113asof_join_backward_on_X_by_Y = {"__pyx_fuse_2_0asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2_0__pyx_pw_6pandas_5_libs_4join_113asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_2_0__pyx_pw_6pandas_5_libs_4join_113asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults41 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults41, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_112asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_112asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2_0asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_426__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults42, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults42, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults42, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults42, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_2_1__pyx_pw_6pandas_5_libs_4join_115asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2_1__pyx_mdef_6pandas_5_libs_4join_115asof_join_backward_on_X_by_Y = {"__pyx_fuse_2_1asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2_1__pyx_pw_6pandas_5_libs_4join_115asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_2_1__pyx_pw_6pandas_5_libs_4join_115asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults42 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults42, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_114asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_114asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2_1asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_428__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults43, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults43, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults43, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults43, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_2_2__pyx_pw_6pandas_5_libs_4join_117asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2_2__pyx_mdef_6pandas_5_libs_4join_117asof_join_backward_on_X_by_Y = {"__pyx_fuse_2_2asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2_2__pyx_pw_6pandas_5_libs_4join_117asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_2_2__pyx_pw_6pandas_5_libs_4join_117asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults43 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults43, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_116asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_116asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2_2asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_430__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults44, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults44, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults44, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults44, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_3_0__pyx_pw_6pandas_5_libs_4join_119asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3_0__pyx_mdef_6pandas_5_libs_4join_119asof_join_backward_on_X_by_Y = {"__pyx_fuse_3_0asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3_0__pyx_pw_6pandas_5_libs_4join_119asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_3_0__pyx_pw_6pandas_5_libs_4join_119asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults44 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults44, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_118asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_118asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3_0asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_432__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults45, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults45, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults45, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults45, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_3_1__pyx_pw_6pandas_5_libs_4join_121asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3_1__pyx_mdef_6pandas_5_libs_4join_121asof_join_backward_on_X_by_Y = {"__pyx_fuse_3_1asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3_1__pyx_pw_6pandas_5_libs_4join_121asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_3_1__pyx_pw_6pandas_5_libs_4join_121asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults45 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults45, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_120asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_120asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3_1asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_434__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults46, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults46, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults46, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults46, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_3_2__pyx_pw_6pandas_5_libs_4join_123asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3_2__pyx_mdef_6pandas_5_libs_4join_123asof_join_backward_on_X_by_Y = {"__pyx_fuse_3_2asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3_2__pyx_pw_6pandas_5_libs_4join_123asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_3_2__pyx_pw_6pandas_5_libs_4join_123asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults46 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults46, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_122asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_122asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3_2asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_436__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults47, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults47, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults47, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults47, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_4_0__pyx_pw_6pandas_5_libs_4join_125asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4_0__pyx_mdef_6pandas_5_libs_4join_125asof_join_backward_on_X_by_Y = {"__pyx_fuse_4_0asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4_0__pyx_pw_6pandas_5_libs_4join_125asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_4_0__pyx_pw_6pandas_5_libs_4join_125asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults47 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults47, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_124asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_124asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int8_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4_0asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_438__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults48, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults48, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults48, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults48, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_4_1__pyx_pw_6pandas_5_libs_4join_127asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4_1__pyx_mdef_6pandas_5_libs_4join_127asof_join_backward_on_X_by_Y = {"__pyx_fuse_4_1asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4_1__pyx_pw_6pandas_5_libs_4join_127asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_4_1__pyx_pw_6pandas_5_libs_4join_127asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults48 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults48, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_126asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_126asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int8_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4_1asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_440__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults49, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults49, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults49, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults49, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_4_2__pyx_pw_6pandas_5_libs_4join_129asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4_2__pyx_mdef_6pandas_5_libs_4join_129asof_join_backward_on_X_by_Y = {"__pyx_fuse_4_2asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4_2__pyx_pw_6pandas_5_libs_4join_129asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_4_2__pyx_pw_6pandas_5_libs_4join_129asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults49 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults49, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_128asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_128asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int8_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4_2asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_442__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults50, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults50, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults50, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults50, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_5_0__pyx_pw_6pandas_5_libs_4join_131asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5_0__pyx_mdef_6pandas_5_libs_4join_131asof_join_backward_on_X_by_Y = {"__pyx_fuse_5_0asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5_0__pyx_pw_6pandas_5_libs_4join_131asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_5_0__pyx_pw_6pandas_5_libs_4join_131asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults50 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults50, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_130asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_130asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int16_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5_0asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_444__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults51, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults51, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults51, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults51, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_5_1__pyx_pw_6pandas_5_libs_4join_133asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5_1__pyx_mdef_6pandas_5_libs_4join_133asof_join_backward_on_X_by_Y = {"__pyx_fuse_5_1asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5_1__pyx_pw_6pandas_5_libs_4join_133asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_5_1__pyx_pw_6pandas_5_libs_4join_133asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults51 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults51, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_132asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_132asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int16_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5_1asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_446__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults52, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults52, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults52, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults52, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_5_2__pyx_pw_6pandas_5_libs_4join_135asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5_2__pyx_mdef_6pandas_5_libs_4join_135asof_join_backward_on_X_by_Y = {"__pyx_fuse_5_2asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5_2__pyx_pw_6pandas_5_libs_4join_135asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_5_2__pyx_pw_6pandas_5_libs_4join_135asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults52 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults52, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_134asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_134asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int16_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5_2asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_448__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults53, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults53, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults53, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults53, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_6_0__pyx_pw_6pandas_5_libs_4join_137asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6_0__pyx_mdef_6pandas_5_libs_4join_137asof_join_backward_on_X_by_Y = {"__pyx_fuse_6_0asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6_0__pyx_pw_6pandas_5_libs_4join_137asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_6_0__pyx_pw_6pandas_5_libs_4join_137asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults53 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults53, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_136asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_136asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6_0asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_450__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults54, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults54, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults54, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults54, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_6_1__pyx_pw_6pandas_5_libs_4join_139asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6_1__pyx_mdef_6pandas_5_libs_4join_139asof_join_backward_on_X_by_Y = {"__pyx_fuse_6_1asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6_1__pyx_pw_6pandas_5_libs_4join_139asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_6_1__pyx_pw_6pandas_5_libs_4join_139asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults54 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults54, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_138asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_138asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6_1asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_452__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults55, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults55, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults55, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults55, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_6_2__pyx_pw_6pandas_5_libs_4join_141asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6_2__pyx_mdef_6pandas_5_libs_4join_141asof_join_backward_on_X_by_Y = {"__pyx_fuse_6_2asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6_2__pyx_pw_6pandas_5_libs_4join_141asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_6_2__pyx_pw_6pandas_5_libs_4join_141asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults55 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults55, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_140asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_140asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6_2asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_454__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults56, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults56, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults56, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults56, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_7_0__pyx_pw_6pandas_5_libs_4join_143asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7_0__pyx_mdef_6pandas_5_libs_4join_143asof_join_backward_on_X_by_Y = {"__pyx_fuse_7_0asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7_0__pyx_pw_6pandas_5_libs_4join_143asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_7_0__pyx_pw_6pandas_5_libs_4join_143asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults56 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults56, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_142asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_142asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7_0asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_456__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults57, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults57, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults57, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults57, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_7_1__pyx_pw_6pandas_5_libs_4join_145asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7_1__pyx_mdef_6pandas_5_libs_4join_145asof_join_backward_on_X_by_Y = {"__pyx_fuse_7_1asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7_1__pyx_pw_6pandas_5_libs_4join_145asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_7_1__pyx_pw_6pandas_5_libs_4join_145asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults57 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults57, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_144asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_144asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7_1asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_458__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults58, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults58, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults58, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults58, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_7_2__pyx_pw_6pandas_5_libs_4join_147asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7_2__pyx_mdef_6pandas_5_libs_4join_147asof_join_backward_on_X_by_Y = {"__pyx_fuse_7_2asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7_2__pyx_pw_6pandas_5_libs_4join_147asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_7_2__pyx_pw_6pandas_5_libs_4join_147asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults58 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults58, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_146asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_146asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7_2asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_460__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults59, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults59, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults59, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults59, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_8_0__pyx_pw_6pandas_5_libs_4join_149asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8_0__pyx_mdef_6pandas_5_libs_4join_149asof_join_backward_on_X_by_Y = {"__pyx_fuse_8_0asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8_0__pyx_pw_6pandas_5_libs_4join_149asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_8_0__pyx_pw_6pandas_5_libs_4join_149asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults59 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults59, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_148asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_148asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  float __pyx_v_tolerance_;
  float __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8_0asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_462__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults60, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults60, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults60, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults60, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_8_1__pyx_pw_6pandas_5_libs_4join_151asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8_1__pyx_mdef_6pandas_5_libs_4join_151asof_join_backward_on_X_by_Y = {"__pyx_fuse_8_1asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8_1__pyx_pw_6pandas_5_libs_4join_151asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_8_1__pyx_pw_6pandas_5_libs_4join_151asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults60 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults60, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_150asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_150asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  float __pyx_v_tolerance_;
  float __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8_1asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_464__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults61, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults61, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults61, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults61, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_8_2__pyx_pw_6pandas_5_libs_4join_153asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8_2__pyx_mdef_6pandas_5_libs_4join_153asof_join_backward_on_X_by_Y = {"__pyx_fuse_8_2asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8_2__pyx_pw_6pandas_5_libs_4join_153asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_8_2__pyx_pw_6pandas_5_libs_4join_153asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults61 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults61, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_152asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_152asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  float __pyx_v_tolerance_;
  float __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8_2asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_466__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults62, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults62, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults62, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults62, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_9_0__pyx_pw_6pandas_5_libs_4join_155asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9_0__pyx_mdef_6pandas_5_libs_4join_155asof_join_backward_on_X_by_Y = {"__pyx_fuse_9_0asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9_0__pyx_pw_6pandas_5_libs_4join_155asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_9_0__pyx_pw_6pandas_5_libs_4join_155asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults62 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults62, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_154asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_154asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_float64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_float64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9_0asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_468__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults63, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults63, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults63, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults63, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_9_1__pyx_pw_6pandas_5_libs_4join_157asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9_1__pyx_mdef_6pandas_5_libs_4join_157asof_join_backward_on_X_by_Y = {"__pyx_fuse_9_1asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9_1__pyx_pw_6pandas_5_libs_4join_157asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_9_1__pyx_pw_6pandas_5_libs_4join_157asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults63 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults63, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_156asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_156asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_float64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_float64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9_1asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_470__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults64, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults64, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults64, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults64, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_9_2__pyx_pw_6pandas_5_libs_4join_159asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9_2__pyx_mdef_6pandas_5_libs_4join_159asof_join_backward_on_X_by_Y = {"__pyx_fuse_9_2asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9_2__pyx_pw_6pandas_5_libs_4join_159asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_9_2__pyx_pw_6pandas_5_libs_4join_159asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults64 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults64, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_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 (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = 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, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 663, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 664, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 665, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 666, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_158asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_158asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_float64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_float64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9_2asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
    __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_GIVEREF(__pyx_t_10);
    PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_11, 1, Py_None);
    __pyx_t_10 = 0;
/* … */
  __pyx_tuple__55 = PyTuple_Pack(18, __pyx_n_s_left_values, __pyx_n_s_right_values, __pyx_n_s_left_by_values, __pyx_n_s_right_by_values, __pyx_n_s_allow_exact_matches, __pyx_n_s_tolerance, __pyx_n_s_left_pos, __pyx_n_s_right_pos, __pyx_n_s_left_size, __pyx_n_s_right_size, __pyx_n_s_found_right_pos, __pyx_n_s_left_indexer, __pyx_n_s_right_indexer, __pyx_n_s_has_tolerance, __pyx_n_s_tolerance_2, __pyx_n_s_diff, __pyx_n_s_hash_table, __pyx_n_s_by_value); if (unlikely(!__pyx_tuple__55)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__55);
  __Pyx_GIVEREF(__pyx_tuple__55);
    __pyx_t_10 = __Pyx_PyDict_NewPresized(30); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0_0__pyx_mdef_6pandas_5_libs_4join_101asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0_0__pyx_mdef_6pandas_5_libs_4join_101asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults35), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults35, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults35, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_412__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_uint8_t_object, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0_1__pyx_mdef_6pandas_5_libs_4join_103asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0_1__pyx_mdef_6pandas_5_libs_4join_103asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults36), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults36, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults36, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_414__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_uint8_t_int64_t, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0_2__pyx_mdef_6pandas_5_libs_4join_105asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0_2__pyx_mdef_6pandas_5_libs_4join_105asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults37), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults37, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults37, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_416__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_uint8_t_uint64_t, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1_0__pyx_mdef_6pandas_5_libs_4join_107asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1_0__pyx_mdef_6pandas_5_libs_4join_107asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults38), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults38, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults38, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_418__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_uint16_t_object, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1_1__pyx_mdef_6pandas_5_libs_4join_109asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1_1__pyx_mdef_6pandas_5_libs_4join_109asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults39), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults39, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults39, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_420__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_uint16_t_int64_t, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1_2__pyx_mdef_6pandas_5_libs_4join_111asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1_2__pyx_mdef_6pandas_5_libs_4join_111asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults40), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults40, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults40, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_422__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_uint16_t_uint64_t, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2_0__pyx_mdef_6pandas_5_libs_4join_113asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2_0__pyx_mdef_6pandas_5_libs_4join_113asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults41), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults41, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults41, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_424__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_uint32_t_object, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2_1__pyx_mdef_6pandas_5_libs_4join_115asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2_1__pyx_mdef_6pandas_5_libs_4join_115asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults42), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults42, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults42, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_426__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_uint32_t_int64_t, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2_2__pyx_mdef_6pandas_5_libs_4join_117asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2_2__pyx_mdef_6pandas_5_libs_4join_117asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults43), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults43, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults43, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_428__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_uint32_t_uint64_t, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3_0__pyx_mdef_6pandas_5_libs_4join_119asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3_0__pyx_mdef_6pandas_5_libs_4join_119asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults44), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults44, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults44, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_430__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_uint64_t_object, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3_1__pyx_mdef_6pandas_5_libs_4join_121asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3_1__pyx_mdef_6pandas_5_libs_4join_121asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults45), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults45, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults45, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_432__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_uint64_t_int64_t, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3_2__pyx_mdef_6pandas_5_libs_4join_123asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3_2__pyx_mdef_6pandas_5_libs_4join_123asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults46), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults46, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults46, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_434__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_uint64_t_uint64_t, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4_0__pyx_mdef_6pandas_5_libs_4join_125asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4_0__pyx_mdef_6pandas_5_libs_4join_125asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults47), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults47, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults47, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_436__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_int8_t_object, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4_1__pyx_mdef_6pandas_5_libs_4join_127asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4_1__pyx_mdef_6pandas_5_libs_4join_127asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults48), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults48, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults48, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_438__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_int8_t_int64_t, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4_2__pyx_mdef_6pandas_5_libs_4join_129asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4_2__pyx_mdef_6pandas_5_libs_4join_129asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults49), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults49, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults49, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_440__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_int8_t_uint64_t, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5_0__pyx_mdef_6pandas_5_libs_4join_131asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5_0__pyx_mdef_6pandas_5_libs_4join_131asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults50), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults50, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults50, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_442__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_int16_t_object, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5_1__pyx_mdef_6pandas_5_libs_4join_133asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5_1__pyx_mdef_6pandas_5_libs_4join_133asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults51), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults51, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults51, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_444__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_int16_t_int64_t, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5_2__pyx_mdef_6pandas_5_libs_4join_135asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5_2__pyx_mdef_6pandas_5_libs_4join_135asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults52), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults52, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults52, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_446__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_int16_t_uint64_t, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6_0__pyx_mdef_6pandas_5_libs_4join_137asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6_0__pyx_mdef_6pandas_5_libs_4join_137asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults53), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults53, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults53, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_448__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_int32_t_object, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6_1__pyx_mdef_6pandas_5_libs_4join_139asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6_1__pyx_mdef_6pandas_5_libs_4join_139asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults54), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults54, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults54, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_450__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_int32_t_int64_t, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6_2__pyx_mdef_6pandas_5_libs_4join_141asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6_2__pyx_mdef_6pandas_5_libs_4join_141asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults55), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults55, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults55, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_452__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_int32_t_uint64_t, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7_0__pyx_mdef_6pandas_5_libs_4join_143asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7_0__pyx_mdef_6pandas_5_libs_4join_143asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults56), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults56, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults56, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_454__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_int64_t_object, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7_1__pyx_mdef_6pandas_5_libs_4join_145asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7_1__pyx_mdef_6pandas_5_libs_4join_145asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults57), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults57, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults57, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_456__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_int64_t_int64_t, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7_2__pyx_mdef_6pandas_5_libs_4join_147asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7_2__pyx_mdef_6pandas_5_libs_4join_147asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults58), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults58, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults58, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_458__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_int64_t_uint64_t, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_8_0__pyx_mdef_6pandas_5_libs_4join_149asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_8_0__pyx_mdef_6pandas_5_libs_4join_149asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults59), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults59, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults59, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_460__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_float_object, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_8_1__pyx_mdef_6pandas_5_libs_4join_151asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_8_1__pyx_mdef_6pandas_5_libs_4join_151asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults60), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults60, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults60, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_462__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_float_int64_t, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_8_2__pyx_mdef_6pandas_5_libs_4join_153asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_8_2__pyx_mdef_6pandas_5_libs_4join_153asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults61), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults61, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults61, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_464__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_float_uint64_t, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_9_0__pyx_mdef_6pandas_5_libs_4join_155asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_9_0__pyx_mdef_6pandas_5_libs_4join_155asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults62), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults62, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults62, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_466__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_float64_t_object, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_9_1__pyx_mdef_6pandas_5_libs_4join_157asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_9_1__pyx_mdef_6pandas_5_libs_4join_157asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults63), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults63, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults63, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_468__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_float64_t_int64_t, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_9_2__pyx_mdef_6pandas_5_libs_4join_159asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_fuse_9_2__pyx_mdef_6pandas_5_libs_4join_159asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults64), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults64, __pyx_t_12)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults64, __pyx_t_12)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_470__defaults__);
    if (PyDict_SetItem(__pyx_t_10, __pyx_kp_s_float64_t_uint64_t, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_13 = PyDict_New(); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_17asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_13, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    #else
    __pyx_t_12 = __pyx_FusedFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_17asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_12);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_12, sizeof(__pyx_defaults4), 1)) __PYX_ERR(0, 663, __pyx_L1_error)
/* … */
    #if CYTHON_COMPILING_IN_LIMITED_API
    __Pyx_INCREF(__pyx_t_12);
    if (PyModule_AddObject(__pyx_m, __pyx_k_asof_join_backward_on_X_by_Y, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    #else
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_asof_join_backward_on_X_by_Y, __pyx_t_12) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
    #endif
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_codeobj__56 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 18, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_asof_join_backward_on_X_by_Y, 663, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__56)) __PYX_ERR(0, 663, __pyx_L1_error)
 664:                                  asof_t[:] right_values,
 665:                                  by_t[:] left_by_values,
 666:                                  by_t[:] right_by_values,
+667:                                  bint allow_exact_matches=1,
    __pyx_t_10 = __Pyx_PyInt_From_long(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 667, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
/* … */
    __pyx_t_13 = __Pyx_PyInt_From_long(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 667, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_CyFunction_Defaults(__pyx_defaults4, __pyx_t_12)->__pyx_arg__fused_sigindex = __pyx_t_13;
    __Pyx_GIVEREF(__pyx_t_13);
    __pyx_t_13 = 0;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_11);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_12, __pyx_pf_6pandas_5_libs_4join_412__defaults__);
    ((__pyx_FusedFunctionObject *) __pyx_t_12)->__signatures__ = __pyx_t_10;
    __Pyx_GIVEREF(__pyx_t_10);
 668:                                  tolerance=None):
 669: 
 670:     cdef:
 671:         Py_ssize_t left_pos, right_pos, left_size, right_size, found_right_pos
 672:         ndarray[int64_t] left_indexer, right_indexer
+673:         bint has_tolerance = False
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
+674:         asof_t tolerance_ = 0
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0.0;
/* … */
  __pyx_v_tolerance_ = 0.0;
/* … */
  __pyx_v_tolerance_ = 0.0;
/* … */
  __pyx_v_tolerance_ = 0.0;
/* … */
  __pyx_v_tolerance_ = 0.0;
/* … */
  __pyx_v_tolerance_ = 0.0;
+675:         asof_t diff = 0
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0.0;
/* … */
  __pyx_v_diff = 0.0;
/* … */
  __pyx_v_diff = 0.0;
/* … */
  __pyx_v_diff = 0.0;
/* … */
  __pyx_v_diff = 0.0;
/* … */
  __pyx_v_diff = 0.0;
 676:         HashTable hash_table
 677:         by_t by_value
 678: 
 679:     # if we are using tolerance, set our objects
+680:     if tolerance is not None:
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
+681:         has_tolerance = True
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
+682:         tolerance_ = tolerance
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsFloat(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsFloat(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsFloat(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 682, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
 683: 
+684:     left_size = len(left_values)
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
+685:     right_size = len(right_values)
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
 686: 
+687:     left_indexer = np.empty(left_size, dtype=np.int64)
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
+688:     right_indexer = np.empty(left_size, dtype=np.int64)
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 688, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 688, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
 689: 
 690:     if by_t is object:
+691:         hash_table = PyObjectHashTable(right_size)
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
 692:     elif by_t is int64_t:
+693:         hash_table = Int64HashTable(right_size)
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
 694:     elif by_t is uint64_t:
+695:         hash_table = UInt64HashTable(right_size)
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
 696: 
+697:     right_pos = 0
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
+698:     for left_pos in range(left_size):
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
 699:         # restart right_pos if it went negative in a previous iteration
+700:         if right_pos < 0:
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
+701:             right_pos = 0
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
 702: 
 703:         # find last position in right whose value is less than left's
+704:         if allow_exact_matches:
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
+705:             while (right_pos < right_size and
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
+706:                    right_values[right_pos] <= left_values[left_pos]):
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 706, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
+707:                 hash_table.set_item(right_by_values[right_pos], right_pos)
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 707, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+708:                 right_pos += 1
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
 709:         else:
+710:             while (right_pos < right_size and
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
+711:                    right_values[right_pos] < left_values[left_pos]):
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_20 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_right_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_22 = __pyx_v_left_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_22 < 0) {
          __pyx_t_22 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_22 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 711, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_20 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
+712:                 hash_table.set_item(right_by_values[right_pos], right_pos)
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_23 = __pyx_v_right_pos;
        __pyx_t_21 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_21 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_v_right_by_values.shape[0])) __pyx_t_21 = 0;
        if (unlikely(__pyx_t_21 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_21);
          __PYX_ERR(0, 712, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_23 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_21 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_21 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_21, 2+__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+713:                 right_pos += 1
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
+714:         right_pos -= 1
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
 715: 
 716:         # save positions as the desired index
+717:         by_value = left_by_values[left_pos]
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_24 = __pyx_v_left_pos;
    __pyx_t_25 = -1;
    if (__pyx_t_24 < 0) {
      __pyx_t_24 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_24 < 0)) __pyx_t_25 = 0;
    } else if (unlikely(__pyx_t_24 >= __pyx_v_left_by_values.shape[0])) __pyx_t_25 = 0;
    if (unlikely(__pyx_t_25 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_25);
      __PYX_ERR(0, 717, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_24 * __pyx_v_left_by_values.strides[0]) )));
+718:         found_right_pos = (hash_table.get_item(by_value)
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_by_value};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_by_value};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_by_value};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_by_value};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_by_value};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_by_value};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_by_value};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_by_value};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_by_value};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_by_value};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_25 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_25 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_25, 1+__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_27 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_27 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_26 = __pyx_t_27;
    } else {
      __pyx_t_26 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_26;
+719:                            if by_value in hash_table else -1)
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 719, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
+720:         left_indexer[left_pos] = left_pos
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 720, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
+721:         right_indexer[left_pos] = found_right_pos
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_30 = __pyx_v_left_pos;
    __pyx_t_29 = -1;
    if (__pyx_t_30 < 0) {
      __pyx_t_30 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_30 < 0)) __pyx_t_29 = 0;
    } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
    if (unlikely(__pyx_t_29 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_29);
      __PYX_ERR(0, 721, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
 722: 
 723:         # if needed, verify that tolerance is met
+724:         if has_tolerance and found_right_pos != -1:
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
+725:             diff = left_values[left_pos] - right_values[found_right_pos]
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_31 = __pyx_v_left_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_t_32 = __pyx_v_found_right_pos;
      __pyx_t_29 = -1;
      if (__pyx_t_32 < 0) {
        __pyx_t_32 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_32 < 0)) __pyx_t_29 = 0;
      } else if (unlikely(__pyx_t_32 >= __pyx_v_right_values.shape[0])) __pyx_t_29 = 0;
      if (unlikely(__pyx_t_29 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_29);
        __PYX_ERR(0, 725, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_32 * __pyx_v_right_values.strides[0]) ))));
+726:             if diff > tolerance_:
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
+727:                 right_indexer[left_pos] = -1
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_33 = __pyx_v_left_pos;
        __pyx_t_29 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_29 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_29 = 0;
        if (unlikely(__pyx_t_29 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_29);
          __PYX_ERR(0, 727, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
 728: 
+729:     return left_indexer, right_indexer
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
 730: 
 731: 
+732: def asof_join_forward_on_X_by_Y(asof_t[:] left_values,
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_19asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_19asof_join_forward_on_X_by_Y = {"asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pandas_5_libs_4join_19asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6pandas_5_libs_4join_19asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  PyObject *__pyx_v__fused_sigindex = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,&__pyx_n_s_fused_sigindex,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,&__pyx_n_s_fused_sigindex,0};
    #endif
    PyObject* values[5] = {0,0,0,0,0};
    __pyx_defaults65 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults65, __pyx_self);
    values[4] = __pyx_dynamic_args->__pyx_arg__fused_sigindex;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_signatures)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_args)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_defaults)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fused_sigindex);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const 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_fused_cpdef") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
    __pyx_v__fused_sigindex = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_18asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults, __pyx_v__fused_sigindex);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_18asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults, PyObject *__pyx_v__fused_sigindex) {
  PyObject *__pyx_v_search_list = 0;
  PyObject *__pyx_v_sn = 0;
  PyObject *__pyx_v_sigindex_node = 0;
  PyObject *__pyx_v_dest_sig = NULL;
  PyTypeObject *__pyx_v_ndarray = 0;
  __Pyx_memviewslice __pyx_v_memslice;
  Py_ssize_t __pyx_v_itemsize;
  int __pyx_v_dtype_signed;
  char __pyx_v_kind;
  int __pyx_v____pyx_uint8_t_is_signed;
  int __pyx_v____pyx_uint16_t_is_signed;
  int __pyx_v____pyx_uint32_t_is_signed;
  int __pyx_v____pyx_uint64_t_is_signed;
  int __pyx_v____pyx_int8_t_is_signed;
  int __pyx_v____pyx_int16_t_is_signed;
  int __pyx_v____pyx_int32_t_is_signed;
  int __pyx_v____pyx_int64_t_is_signed;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_dtype = NULL;
  PyObject *__pyx_v_arg_base = NULL;
  PyObject *__pyx_v_sig = NULL;
  PyObject *__pyx_v_sig_series = NULL;
  PyObject *__pyx_v_sig_type = NULL;
  PyObject *__pyx_v_sigindex_matches = NULL;
  PyObject *__pyx_v_sigindex_candidates = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_v_found_matches = NULL;
  PyObject *__pyx_v_found_candidates = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  { Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
      __Pyx_INCREF(Py_None);
      __Pyx_GIVEREF(Py_None);
      PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
    }
  }
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  __pyx_v____pyx_uint8_t_is_signed = (!((((__pyx_t_5numpy_uint8_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint16_t_is_signed = (!((((__pyx_t_5numpy_uint16_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint32_t_is_signed = (!((((__pyx_t_5numpy_uint32_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
  __pyx_v____pyx_int8_t_is_signed = (!((((__pyx_t_5numpy_int8_t)-1L) > 0) != 0));
  __pyx_v____pyx_int16_t_is_signed = (!((((__pyx_t_5numpy_int16_t)-1L) > 0) != 0));
  __pyx_v____pyx_int32_t_is_signed = (!((((__pyx_t_5numpy_int32_t)-1L) > 0) != 0));
  __pyx_v____pyx_int64_t_is_signed = (!((((__pyx_t_5numpy_int64_t)-1L) > 0) != 0));
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 732, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 732, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 732, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 732, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_left_values, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (likely(__pyx_t_2)) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 732, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_left_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 732, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 732, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_4);
    __Pyx_GIVEREF(__pyx_int_4);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_4);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 732, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_dtype = __pyx_t_6;
        __pyx_t_6 = 0;
        goto __pyx_L12;
      }
      __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg); 
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_arg_base = __pyx_t_6;
        __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
        __pyx_t_2 = (__pyx_t_3 != 0);
        if (__pyx_t_2) {
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_v_dtype = __pyx_t_6;
          __pyx_t_6 = 0;
          goto __pyx_L13;
        }
        /*else*/ {
          __Pyx_INCREF(Py_None);
          __pyx_v_dtype = Py_None;
        }
        __pyx_L13:;
        goto __pyx_L12;
      }
      /*else*/ {
        __Pyx_INCREF(Py_None);
        __pyx_v_dtype = Py_None;
      }
      __pyx_L12:;
      __pyx_v_itemsize = -1L;
      __pyx_t_2 = (__pyx_v_dtype != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_itemsize = __pyx_t_5;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 732, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_kind = __pyx_t_7;
        __pyx_v_dtype_signed = (__pyx_v_kind == 'i');
        switch (__pyx_v_kind) {
          case 'i':
          case 'u':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L16_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L20_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L24_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L28_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L32_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L36_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L40_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L44_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'f':
          __pyx_t_2 = (((sizeof(float)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L48_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L48_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L51_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L51_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'c':
          break;
          case 'O':
          break;
          default: break;
        }
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L54_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L54_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L58_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L58_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L62_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L62_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L66_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L66_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L70_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L70_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L74_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L74_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L78_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L78_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L82_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L82_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L86_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(float))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L86_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_float(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L90_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L90_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 732, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 732, __pyx_L1_error)
  __pyx_t_3 = ((2 < __pyx_t_5) != 0);
  if (__pyx_t_3) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 732, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L93;
  }
  __pyx_t_2 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_2 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L94_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 732, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_left_by_values, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
  __pyx_t_2 = (__pyx_t_4 != 0);
  __pyx_t_3 = __pyx_t_2;
  __pyx_L94_bool_binop_done:;
  if (likely(__pyx_t_3)) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 732, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_left_by_values); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L93;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 732, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 732, __pyx_L1_error)
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_int_4);
    __Pyx_GIVEREF(__pyx_int_4);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_4);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 732, __pyx_L1_error)
  }
  __pyx_L93:;
  while (1) {
    __pyx_t_3 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
        __pyx_t_1 = 0;
        goto __pyx_L99;
      }
      __pyx_t_3 = __pyx_memoryview_check(__pyx_v_arg); 
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_XDECREF_SET(__pyx_v_arg_base, __pyx_t_1);
        __pyx_t_1 = 0;
        __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
        __pyx_t_3 = (__pyx_t_2 != 0);
        if (__pyx_t_3) {
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
          __pyx_t_1 = 0;
          goto __pyx_L100;
        }
        /*else*/ {
          __Pyx_INCREF(Py_None);
          __Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
        }
        __pyx_L100:;
        goto __pyx_L99;
      }
      /*else*/ {
        __Pyx_INCREF(Py_None);
        __Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
      }
      __pyx_L99:;
      __pyx_v_itemsize = -1L;
      __pyx_t_3 = (__pyx_v_dtype != Py_None);
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_v_itemsize = __pyx_t_5;
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_1); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 732, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_v_kind = __pyx_t_7;
        __pyx_v_dtype_signed = (__pyx_v_kind == 'i');
        switch (__pyx_v_kind) {
          case 'i':
          case 'u':
          __pyx_t_3 = (((sizeof(__pyx_t_5numpy_int64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L103_bool_binop_done;
          }
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L103_bool_binop_done;
          }
          __pyx_t_3 = ((!((__pyx_v____pyx_int64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L103_bool_binop_done:;
          if (__pyx_t_2) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
            goto __pyx_L97_break;
          }
          __pyx_t_3 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L107_bool_binop_done;
          }
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L107_bool_binop_done;
          }
          __pyx_t_3 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L107_bool_binop_done:;
          if (__pyx_t_2) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
            goto __pyx_L97_break;
          }
          break;
          case 'f':
          break;
          case 'c':
          break;
          case 'O':
          break;
          default: break;
        }
      }
    }
    __pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L111_bool_binop_done;
    }
    __pyx_t_3 = ((__pyx_v_itemsize == (sizeof(void *))) != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L111_bool_binop_done:;
    if (__pyx_t_2) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_object(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_2 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_2) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_object, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
        goto __pyx_L97_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L115_bool_binop_done;
    }
    __pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int64_t))) != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L115_bool_binop_done:;
    if (__pyx_t_2) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_2 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_2) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
        goto __pyx_L97_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L119_bool_binop_done;
    }
    __pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L119_bool_binop_done:;
    if (__pyx_t_2) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_2 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_2) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
        goto __pyx_L97_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
    goto __pyx_L97_break;
  }
  __pyx_L97_break:;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v__fused_sigindex); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (__pyx_t_3) {
    __pyx_t_5 = 0;
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
      __PYX_ERR(0, 732, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_1);
    __pyx_t_1 = __pyx_t_6;
    __pyx_t_6 = 0;
    while (1) {
      __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_9, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_10);
      if (unlikely(__pyx_t_11 == 0)) break;
      if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
      __pyx_t_6 = 0;
      if (!(likely(PyDict_CheckExact(__pyx_v__fused_sigindex))||((__pyx_v__fused_sigindex) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_v__fused_sigindex))), 0))) __PYX_ERR(0, 732, __pyx_L1_error)
      __pyx_t_6 = __pyx_v__fused_sigindex;
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_sigindex_node, ((PyObject*)__pyx_t_6));
      __pyx_t_6 = 0;
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_14 = NULL;
      __pyx_t_11 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
        __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
        if (likely(__pyx_t_14)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_14);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_13, function);
          __pyx_t_11 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_14, __pyx_kp_s__2};
        __pyx_t_12 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_11, 1+__pyx_t_11);
        __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 732, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_12 = NULL;
      __pyx_t_15 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
        __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
        if (likely(__pyx_t_12)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_12);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_13, function);
          __pyx_t_15 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_kp_s__3};
        __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_15, 1+__pyx_t_15);
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __Pyx_XDECREF_SET(__pyx_v_sig_series, __pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_GetSlice(__pyx_v_sig_series, 0, -1L, NULL, NULL, &__pyx_slice__4, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
        __pyx_t_13 = __pyx_t_6; __Pyx_INCREF(__pyx_t_13); __pyx_t_16 = 0;
        __pyx_t_17 = NULL;
      } else {
        __pyx_t_16 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 732, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_17 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 732, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      for (;;) {
        if (likely(!__pyx_t_17)) {
          if (likely(PyList_CheckExact(__pyx_t_13))) {
            if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_13)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_6 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_6); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
            #else
            __pyx_t_6 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          } else {
            if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_6); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
            #else
            __pyx_t_6 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          }
        } else {
          __pyx_t_6 = __pyx_t_17(__pyx_t_13);
          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, 732, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_6);
        }
        __Pyx_XDECREF_SET(__pyx_v_sig_type, __pyx_t_6);
        __pyx_t_6 = 0;
        if (unlikely(__pyx_v_sigindex_node == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
          __PYX_ERR(0, 732, __pyx_L1_error)
        }
        __pyx_t_3 = (__Pyx_PyDict_ContainsTF(__pyx_v_sig_type, __pyx_v_sigindex_node, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
        __pyx_t_2 = (__pyx_t_3 != 0);
        if (__pyx_t_2) {
          __pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (unlikely(__pyx_v_sigindex_node == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 732, __pyx_L1_error)
          }
          if (unlikely(PyDict_SetItem(__pyx_v_sigindex_node, __pyx_v_sig_type, __pyx_t_6) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_DECREF_SET(__pyx_v_sigindex_node, __pyx_t_6);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          goto __pyx_L127;
        }
        /*else*/ {
          if (unlikely(__pyx_v_sigindex_node == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 732, __pyx_L1_error)
          }
          __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_sigindex_node, __pyx_v_sig_type); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (!(likely(PyDict_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_6))), 0))) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_DECREF_SET(__pyx_v_sigindex_node, ((PyObject*)__pyx_t_6));
          __pyx_t_6 = 0;
        }
        __pyx_L127:;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      if (unlikely(__pyx_v_sigindex_node == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(0, 732, __pyx_L1_error)
      }
      __pyx_t_13 = __Pyx_GetItemInt(__pyx_v_sig_series, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      if (unlikely(PyDict_SetItem(__pyx_v_sigindex_node, __pyx_t_13, __pyx_v_sig) < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_sigindex_matches = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v__fused_sigindex);
  __Pyx_GIVEREF(__pyx_v__fused_sigindex);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v__fused_sigindex);
  __pyx_v_sigindex_candidates = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_v_dest_sig; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0;
  for (;;) {
    if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_13 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_13); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
    #else
    __pyx_t_13 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_13);
    __pyx_t_13 = 0;
    __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_XDECREF_SET(__pyx_v_found_matches, ((PyObject*)__pyx_t_13));
    __pyx_t_13 = 0;
    __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_XDECREF_SET(__pyx_v_found_candidates, ((PyObject*)__pyx_t_13));
    __pyx_t_13 = 0;
    __pyx_t_2 = (__pyx_v_dst_type == Py_None);
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      __pyx_t_13 = __pyx_v_sigindex_matches; __Pyx_INCREF(__pyx_t_13); __pyx_t_5 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_5); __Pyx_INCREF(__pyx_t_6); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_13, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
        if (!(likely(PyDict_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_6))), 0))) __PYX_ERR(0, 732, __pyx_L1_error)
        __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_6));
        __pyx_t_6 = 0;
        if (unlikely(__pyx_v_sn == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
          __PYX_ERR(0, 732, __pyx_L1_error)
        }
        __pyx_t_6 = __Pyx_PyDict_Values(__pyx_v_sn); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_18 = __Pyx_PyList_Extend(__pyx_v_found_matches, __pyx_t_6); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 732, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_13 = __pyx_v_sigindex_candidates; __Pyx_INCREF(__pyx_t_13); __pyx_t_5 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_5); __Pyx_INCREF(__pyx_t_6); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_13, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
        if (!(likely(PyDict_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_6))), 0))) __PYX_ERR(0, 732, __pyx_L1_error)
        __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_6));
        __pyx_t_6 = 0;
        if (unlikely(__pyx_v_sn == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
          __PYX_ERR(0, 732, __pyx_L1_error)
        }
        __pyx_t_6 = __Pyx_PyDict_Values(__pyx_v_sn); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_18 = __Pyx_PyList_Extend(__pyx_v_found_candidates, __pyx_t_6); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 732, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      goto __pyx_L130;
    }
    /*else*/ {
      __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_INCREF(__pyx_v_sigindex_matches);
      __Pyx_GIVEREF(__pyx_v_sigindex_matches);
      PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_v_sigindex_matches);
      __Pyx_INCREF(__pyx_v_sigindex_candidates);
      __Pyx_GIVEREF(__pyx_v_sigindex_candidates);
      PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_v_sigindex_candidates);
      __pyx_t_6 = __pyx_t_13; __Pyx_INCREF(__pyx_t_6); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      for (;;) {
        if (__pyx_t_5 >= 2) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_5); __Pyx_INCREF(__pyx_t_13); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
        #else
        __pyx_t_13 = PySequence_ITEM(__pyx_t_6, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 732, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        #endif
        __Pyx_XDECREF_SET(__pyx_v_search_list, ((PyObject*)__pyx_t_13));
        __pyx_t_13 = 0;
        if (unlikely(__pyx_v_search_list == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
          __PYX_ERR(0, 732, __pyx_L1_error)
        }
        __pyx_t_13 = __pyx_v_search_list; __Pyx_INCREF(__pyx_t_13); __pyx_t_16 = 0;
        for (;;) {
          if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_13)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_12 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_12); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
          #else
          __pyx_t_12 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          #endif
          if (!(likely(PyDict_CheckExact(__pyx_t_12))||((__pyx_t_12) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_12))), 0))) __PYX_ERR(0, 732, __pyx_L1_error)
          __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_12));
          __pyx_t_12 = 0;
          if (unlikely(__pyx_v_sn == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
            __PYX_ERR(0, 732, __pyx_L1_error)
          }
          __pyx_t_3 = (__Pyx_PyDict_ContainsTF(__pyx_v_dst_type, __pyx_v_sn, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 732, __pyx_L1_error)
          __pyx_t_2 = (__pyx_t_3 != 0);
          if (__pyx_t_2) {
            if (unlikely(__pyx_v_sn == Py_None)) {
              PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
              __PYX_ERR(0, 732, __pyx_L1_error)
            }
            __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_sn, __pyx_v_dst_type); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 732, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_found_matches, __pyx_t_12); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 732, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          }
        }
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __pyx_L130:;
    __Pyx_INCREF(__pyx_v_found_matches);
    __Pyx_DECREF_SET(__pyx_v_sigindex_matches, __pyx_v_found_matches);
    __Pyx_INCREF(__pyx_v_found_candidates);
    __Pyx_DECREF_SET(__pyx_v_sigindex_candidates, __pyx_v_found_candidates);
    __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_found_matches) != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L141_bool_binop_done;
    }
    __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_found_candidates) != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L141_bool_binop_done:;
    __pyx_t_3 = ((!__pyx_t_2) != 0);
    if (__pyx_t_3) {
      goto __pyx_L129_break;
    }
  }
  __pyx_L129_break:;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_INCREF(__pyx_v_sigindex_matches);
  __pyx_v_candidates = __pyx_v_sigindex_matches;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (unlikely(__pyx_t_2)) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 732, __pyx_L1_error)
  }
  __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 732, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_9 > 1) != 0);
  if (unlikely(__pyx_t_2)) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 732, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 732, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_search_list);
  __Pyx_XDECREF(__pyx_v_sn);
  __Pyx_XDECREF(__pyx_v_sigindex_node);
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF((PyObject *)__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_dtype);
  __Pyx_XDECREF(__pyx_v_arg_base);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_sig_series);
  __Pyx_XDECREF(__pyx_v_sig_type);
  __Pyx_XDECREF(__pyx_v_sigindex_matches);
  __Pyx_XDECREF(__pyx_v_sigindex_candidates);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_found_matches);
  __Pyx_XDECREF(__pyx_v_found_candidates);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_532__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults96, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults96, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults96, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults96, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_0_0__pyx_pw_6pandas_5_libs_4join_163asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_6pandas_5_libs_4join_163asof_join_forward_on_X_by_Y = {"__pyx_fuse_0_0asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_0__pyx_pw_6pandas_5_libs_4join_163asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_0_0__pyx_pw_6pandas_5_libs_4join_163asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults96 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults96, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_162asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_162asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint8_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_534__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults97, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults97, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults97, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults97, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_0_1__pyx_pw_6pandas_5_libs_4join_165asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_6pandas_5_libs_4join_165asof_join_forward_on_X_by_Y = {"__pyx_fuse_0_1asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_1__pyx_pw_6pandas_5_libs_4join_165asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_0_1__pyx_pw_6pandas_5_libs_4join_165asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults97 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults97, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_164asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_164asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint8_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_536__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults98, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults98, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults98, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults98, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_0_2__pyx_pw_6pandas_5_libs_4join_167asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_2__pyx_mdef_6pandas_5_libs_4join_167asof_join_forward_on_X_by_Y = {"__pyx_fuse_0_2asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_2__pyx_pw_6pandas_5_libs_4join_167asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_0_2__pyx_pw_6pandas_5_libs_4join_167asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults98 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults98, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_166asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_166asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint8_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_2asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_538__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults99, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults99, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults99, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults99, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_1_0__pyx_pw_6pandas_5_libs_4join_169asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_6pandas_5_libs_4join_169asof_join_forward_on_X_by_Y = {"__pyx_fuse_1_0asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_0__pyx_pw_6pandas_5_libs_4join_169asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_1_0__pyx_pw_6pandas_5_libs_4join_169asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults99 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults99, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_168asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_168asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint16_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_540__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults100, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults100, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults100, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults100, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_1_1__pyx_pw_6pandas_5_libs_4join_171asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_6pandas_5_libs_4join_171asof_join_forward_on_X_by_Y = {"__pyx_fuse_1_1asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_1__pyx_pw_6pandas_5_libs_4join_171asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_1_1__pyx_pw_6pandas_5_libs_4join_171asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults100 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults100, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_170asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_170asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint16_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_542__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults101, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults101, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults101, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults101, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_1_2__pyx_pw_6pandas_5_libs_4join_173asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_2__pyx_mdef_6pandas_5_libs_4join_173asof_join_forward_on_X_by_Y = {"__pyx_fuse_1_2asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_2__pyx_pw_6pandas_5_libs_4join_173asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_1_2__pyx_pw_6pandas_5_libs_4join_173asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults101 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults101, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_172asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_172asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint16_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_2asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_544__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults102, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults102, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults102, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults102, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_2_0__pyx_pw_6pandas_5_libs_4join_175asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2_0__pyx_mdef_6pandas_5_libs_4join_175asof_join_forward_on_X_by_Y = {"__pyx_fuse_2_0asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2_0__pyx_pw_6pandas_5_libs_4join_175asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_2_0__pyx_pw_6pandas_5_libs_4join_175asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults102 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults102, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_174asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_174asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2_0asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_546__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults103, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults103, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults103, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults103, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_2_1__pyx_pw_6pandas_5_libs_4join_177asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2_1__pyx_mdef_6pandas_5_libs_4join_177asof_join_forward_on_X_by_Y = {"__pyx_fuse_2_1asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2_1__pyx_pw_6pandas_5_libs_4join_177asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_2_1__pyx_pw_6pandas_5_libs_4join_177asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults103 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults103, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_176asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_176asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2_1asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_548__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults104, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults104, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults104, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults104, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_2_2__pyx_pw_6pandas_5_libs_4join_179asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2_2__pyx_mdef_6pandas_5_libs_4join_179asof_join_forward_on_X_by_Y = {"__pyx_fuse_2_2asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2_2__pyx_pw_6pandas_5_libs_4join_179asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_2_2__pyx_pw_6pandas_5_libs_4join_179asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults104 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults104, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_178asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_178asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2_2asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_550__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults105, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults105, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults105, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults105, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_3_0__pyx_pw_6pandas_5_libs_4join_181asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3_0__pyx_mdef_6pandas_5_libs_4join_181asof_join_forward_on_X_by_Y = {"__pyx_fuse_3_0asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3_0__pyx_pw_6pandas_5_libs_4join_181asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_3_0__pyx_pw_6pandas_5_libs_4join_181asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults105 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults105, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_180asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_180asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3_0asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_552__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults106, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults106, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults106, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults106, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_3_1__pyx_pw_6pandas_5_libs_4join_183asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3_1__pyx_mdef_6pandas_5_libs_4join_183asof_join_forward_on_X_by_Y = {"__pyx_fuse_3_1asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3_1__pyx_pw_6pandas_5_libs_4join_183asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_3_1__pyx_pw_6pandas_5_libs_4join_183asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults106 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults106, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_182asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_182asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3_1asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_554__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults107, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults107, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults107, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults107, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_3_2__pyx_pw_6pandas_5_libs_4join_185asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3_2__pyx_mdef_6pandas_5_libs_4join_185asof_join_forward_on_X_by_Y = {"__pyx_fuse_3_2asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3_2__pyx_pw_6pandas_5_libs_4join_185asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_3_2__pyx_pw_6pandas_5_libs_4join_185asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults107 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults107, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_184asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_184asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3_2asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_556__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults108, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults108, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults108, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults108, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_4_0__pyx_pw_6pandas_5_libs_4join_187asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4_0__pyx_mdef_6pandas_5_libs_4join_187asof_join_forward_on_X_by_Y = {"__pyx_fuse_4_0asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4_0__pyx_pw_6pandas_5_libs_4join_187asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_4_0__pyx_pw_6pandas_5_libs_4join_187asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults108 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults108, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_186asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_186asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int8_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4_0asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_558__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults109, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults109, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults109, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults109, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_4_1__pyx_pw_6pandas_5_libs_4join_189asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4_1__pyx_mdef_6pandas_5_libs_4join_189asof_join_forward_on_X_by_Y = {"__pyx_fuse_4_1asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4_1__pyx_pw_6pandas_5_libs_4join_189asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_4_1__pyx_pw_6pandas_5_libs_4join_189asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults109 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults109, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_188asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_188asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int8_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4_1asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_560__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults110, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults110, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults110, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults110, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_4_2__pyx_pw_6pandas_5_libs_4join_191asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4_2__pyx_mdef_6pandas_5_libs_4join_191asof_join_forward_on_X_by_Y = {"__pyx_fuse_4_2asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4_2__pyx_pw_6pandas_5_libs_4join_191asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_4_2__pyx_pw_6pandas_5_libs_4join_191asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults110 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults110, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_190asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_190asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int8_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4_2asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_562__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults111, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults111, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults111, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults111, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_5_0__pyx_pw_6pandas_5_libs_4join_193asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5_0__pyx_mdef_6pandas_5_libs_4join_193asof_join_forward_on_X_by_Y = {"__pyx_fuse_5_0asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5_0__pyx_pw_6pandas_5_libs_4join_193asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_5_0__pyx_pw_6pandas_5_libs_4join_193asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults111 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults111, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_192asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_192asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int16_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5_0asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_564__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults112, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults112, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults112, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults112, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_5_1__pyx_pw_6pandas_5_libs_4join_195asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5_1__pyx_mdef_6pandas_5_libs_4join_195asof_join_forward_on_X_by_Y = {"__pyx_fuse_5_1asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5_1__pyx_pw_6pandas_5_libs_4join_195asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_5_1__pyx_pw_6pandas_5_libs_4join_195asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults112 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults112, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_194asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_194asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int16_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5_1asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_566__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults113, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults113, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults113, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults113, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_5_2__pyx_pw_6pandas_5_libs_4join_197asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5_2__pyx_mdef_6pandas_5_libs_4join_197asof_join_forward_on_X_by_Y = {"__pyx_fuse_5_2asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5_2__pyx_pw_6pandas_5_libs_4join_197asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_5_2__pyx_pw_6pandas_5_libs_4join_197asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults113 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults113, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_196asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_196asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int16_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5_2asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_568__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults114, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults114, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults114, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults114, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_6_0__pyx_pw_6pandas_5_libs_4join_199asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6_0__pyx_mdef_6pandas_5_libs_4join_199asof_join_forward_on_X_by_Y = {"__pyx_fuse_6_0asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6_0__pyx_pw_6pandas_5_libs_4join_199asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_6_0__pyx_pw_6pandas_5_libs_4join_199asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults114 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults114, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_198asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_198asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6_0asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_570__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults115, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults115, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults115, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults115, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_6_1__pyx_pw_6pandas_5_libs_4join_201asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6_1__pyx_mdef_6pandas_5_libs_4join_201asof_join_forward_on_X_by_Y = {"__pyx_fuse_6_1asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6_1__pyx_pw_6pandas_5_libs_4join_201asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_6_1__pyx_pw_6pandas_5_libs_4join_201asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults115 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults115, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_200asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_200asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6_1asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_572__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults116, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults116, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults116, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults116, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_6_2__pyx_pw_6pandas_5_libs_4join_203asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6_2__pyx_mdef_6pandas_5_libs_4join_203asof_join_forward_on_X_by_Y = {"__pyx_fuse_6_2asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6_2__pyx_pw_6pandas_5_libs_4join_203asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_6_2__pyx_pw_6pandas_5_libs_4join_203asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults116 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults116, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_202asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_202asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6_2asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_574__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults117, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults117, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults117, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults117, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_7_0__pyx_pw_6pandas_5_libs_4join_205asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7_0__pyx_mdef_6pandas_5_libs_4join_205asof_join_forward_on_X_by_Y = {"__pyx_fuse_7_0asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7_0__pyx_pw_6pandas_5_libs_4join_205asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_7_0__pyx_pw_6pandas_5_libs_4join_205asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults117 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults117, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_204asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_204asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7_0asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_576__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults118, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults118, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults118, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults118, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_7_1__pyx_pw_6pandas_5_libs_4join_207asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7_1__pyx_mdef_6pandas_5_libs_4join_207asof_join_forward_on_X_by_Y = {"__pyx_fuse_7_1asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7_1__pyx_pw_6pandas_5_libs_4join_207asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_7_1__pyx_pw_6pandas_5_libs_4join_207asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults118 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults118, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_206asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_206asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7_1asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_578__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults119, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults119, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults119, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults119, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_7_2__pyx_pw_6pandas_5_libs_4join_209asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7_2__pyx_mdef_6pandas_5_libs_4join_209asof_join_forward_on_X_by_Y = {"__pyx_fuse_7_2asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7_2__pyx_pw_6pandas_5_libs_4join_209asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_7_2__pyx_pw_6pandas_5_libs_4join_209asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults119 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults119, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_208asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_208asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7_2asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_580__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults120, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults120, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults120, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults120, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_8_0__pyx_pw_6pandas_5_libs_4join_211asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8_0__pyx_mdef_6pandas_5_libs_4join_211asof_join_forward_on_X_by_Y = {"__pyx_fuse_8_0asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8_0__pyx_pw_6pandas_5_libs_4join_211asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_8_0__pyx_pw_6pandas_5_libs_4join_211asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults120 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults120, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_210asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_210asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  float __pyx_v_tolerance_;
  float __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8_0asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_582__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults121, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults121, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults121, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults121, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_8_1__pyx_pw_6pandas_5_libs_4join_213asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8_1__pyx_mdef_6pandas_5_libs_4join_213asof_join_forward_on_X_by_Y = {"__pyx_fuse_8_1asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8_1__pyx_pw_6pandas_5_libs_4join_213asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_8_1__pyx_pw_6pandas_5_libs_4join_213asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults121 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults121, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_212asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_212asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  float __pyx_v_tolerance_;
  float __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8_1asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_584__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults122, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults122, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults122, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults122, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_8_2__pyx_pw_6pandas_5_libs_4join_215asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8_2__pyx_mdef_6pandas_5_libs_4join_215asof_join_forward_on_X_by_Y = {"__pyx_fuse_8_2asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8_2__pyx_pw_6pandas_5_libs_4join_215asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_8_2__pyx_pw_6pandas_5_libs_4join_215asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults122 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults122, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_214asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_214asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  float __pyx_v_tolerance_;
  float __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8_2asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_586__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults123, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults123, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults123, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults123, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_9_0__pyx_pw_6pandas_5_libs_4join_217asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9_0__pyx_mdef_6pandas_5_libs_4join_217asof_join_forward_on_X_by_Y = {"__pyx_fuse_9_0asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9_0__pyx_pw_6pandas_5_libs_4join_217asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_9_0__pyx_pw_6pandas_5_libs_4join_217asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults123 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults123, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_216asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_216asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_float64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_float64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9_0asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_588__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults124, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults124, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults124, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults124, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_9_1__pyx_pw_6pandas_5_libs_4join_219asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9_1__pyx_mdef_6pandas_5_libs_4join_219asof_join_forward_on_X_by_Y = {"__pyx_fuse_9_1asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9_1__pyx_pw_6pandas_5_libs_4join_219asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_9_1__pyx_pw_6pandas_5_libs_4join_219asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults124 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults124, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_218asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_218asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_float64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_float64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9_1asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_590__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults125, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults125, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults125, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults125, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_9_2__pyx_pw_6pandas_5_libs_4join_221asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9_2__pyx_mdef_6pandas_5_libs_4join_221asof_join_forward_on_X_by_Y = {"__pyx_fuse_9_2asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9_2__pyx_pw_6pandas_5_libs_4join_221asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_9_2__pyx_pw_6pandas_5_libs_4join_221asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults125 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults125, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 732, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 732, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 733, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 734, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 735, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 736, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 732, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_220asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_220asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_float64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_float64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9_2asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
    __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_13);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_14, 1, Py_None);
    __pyx_t_13 = 0;
/* … */
  __pyx_tuple__57 = PyTuple_Pack(18, __pyx_n_s_left_values, __pyx_n_s_right_values, __pyx_n_s_left_by_values, __pyx_n_s_right_by_values, __pyx_n_s_allow_exact_matches, __pyx_n_s_tolerance, __pyx_n_s_left_pos, __pyx_n_s_right_pos, __pyx_n_s_left_size, __pyx_n_s_right_size, __pyx_n_s_found_right_pos, __pyx_n_s_left_indexer, __pyx_n_s_right_indexer, __pyx_n_s_has_tolerance, __pyx_n_s_tolerance_2, __pyx_n_s_diff, __pyx_n_s_hash_table, __pyx_n_s_by_value); if (unlikely(!__pyx_tuple__57)) __PYX_ERR(0, 732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__57);
  __Pyx_GIVEREF(__pyx_tuple__57);
    __pyx_t_13 = __Pyx_PyDict_NewPresized(30); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0_0__pyx_mdef_6pandas_5_libs_4join_163asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0_0__pyx_mdef_6pandas_5_libs_4join_163asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults96), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults96, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults96, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_532__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_uint8_t_object, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0_1__pyx_mdef_6pandas_5_libs_4join_165asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0_1__pyx_mdef_6pandas_5_libs_4join_165asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults97), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults97, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults97, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_534__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_uint8_t_int64_t, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0_2__pyx_mdef_6pandas_5_libs_4join_167asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0_2__pyx_mdef_6pandas_5_libs_4join_167asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults98), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults98, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults98, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_536__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_uint8_t_uint64_t, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1_0__pyx_mdef_6pandas_5_libs_4join_169asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1_0__pyx_mdef_6pandas_5_libs_4join_169asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults99), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults99, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults99, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_538__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_uint16_t_object, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1_1__pyx_mdef_6pandas_5_libs_4join_171asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1_1__pyx_mdef_6pandas_5_libs_4join_171asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults100), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults100, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults100, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_540__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_uint16_t_int64_t, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1_2__pyx_mdef_6pandas_5_libs_4join_173asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1_2__pyx_mdef_6pandas_5_libs_4join_173asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults101), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults101, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults101, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_542__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_uint16_t_uint64_t, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2_0__pyx_mdef_6pandas_5_libs_4join_175asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2_0__pyx_mdef_6pandas_5_libs_4join_175asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults102), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults102, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults102, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_544__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_uint32_t_object, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2_1__pyx_mdef_6pandas_5_libs_4join_177asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2_1__pyx_mdef_6pandas_5_libs_4join_177asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults103), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults103, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults103, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_546__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_uint32_t_int64_t, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2_2__pyx_mdef_6pandas_5_libs_4join_179asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2_2__pyx_mdef_6pandas_5_libs_4join_179asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults104), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults104, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults104, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_548__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_uint32_t_uint64_t, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3_0__pyx_mdef_6pandas_5_libs_4join_181asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3_0__pyx_mdef_6pandas_5_libs_4join_181asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults105), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults105, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults105, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_550__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_uint64_t_object, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3_1__pyx_mdef_6pandas_5_libs_4join_183asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3_1__pyx_mdef_6pandas_5_libs_4join_183asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults106), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults106, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults106, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_552__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_uint64_t_int64_t, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3_2__pyx_mdef_6pandas_5_libs_4join_185asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3_2__pyx_mdef_6pandas_5_libs_4join_185asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults107), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults107, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults107, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_554__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_uint64_t_uint64_t, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4_0__pyx_mdef_6pandas_5_libs_4join_187asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4_0__pyx_mdef_6pandas_5_libs_4join_187asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults108), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults108, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults108, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_556__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_int8_t_object, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4_1__pyx_mdef_6pandas_5_libs_4join_189asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4_1__pyx_mdef_6pandas_5_libs_4join_189asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults109), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults109, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults109, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_558__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_int8_t_int64_t, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4_2__pyx_mdef_6pandas_5_libs_4join_191asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4_2__pyx_mdef_6pandas_5_libs_4join_191asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults110), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults110, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults110, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_560__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_int8_t_uint64_t, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5_0__pyx_mdef_6pandas_5_libs_4join_193asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5_0__pyx_mdef_6pandas_5_libs_4join_193asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults111), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults111, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults111, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_562__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_int16_t_object, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5_1__pyx_mdef_6pandas_5_libs_4join_195asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5_1__pyx_mdef_6pandas_5_libs_4join_195asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults112), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults112, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults112, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_564__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_int16_t_int64_t, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5_2__pyx_mdef_6pandas_5_libs_4join_197asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5_2__pyx_mdef_6pandas_5_libs_4join_197asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults113), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults113, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults113, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_566__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_int16_t_uint64_t, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6_0__pyx_mdef_6pandas_5_libs_4join_199asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6_0__pyx_mdef_6pandas_5_libs_4join_199asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults114), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults114, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults114, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_568__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_int32_t_object, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6_1__pyx_mdef_6pandas_5_libs_4join_201asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6_1__pyx_mdef_6pandas_5_libs_4join_201asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults115), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults115, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults115, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_570__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_int32_t_int64_t, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6_2__pyx_mdef_6pandas_5_libs_4join_203asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6_2__pyx_mdef_6pandas_5_libs_4join_203asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults116), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults116, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults116, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_572__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_int32_t_uint64_t, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7_0__pyx_mdef_6pandas_5_libs_4join_205asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7_0__pyx_mdef_6pandas_5_libs_4join_205asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults117), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults117, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults117, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_574__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_int64_t_object, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7_1__pyx_mdef_6pandas_5_libs_4join_207asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7_1__pyx_mdef_6pandas_5_libs_4join_207asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults118), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults118, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults118, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_576__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_int64_t_int64_t, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7_2__pyx_mdef_6pandas_5_libs_4join_209asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7_2__pyx_mdef_6pandas_5_libs_4join_209asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults119), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults119, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults119, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_578__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_int64_t_uint64_t, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_8_0__pyx_mdef_6pandas_5_libs_4join_211asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_8_0__pyx_mdef_6pandas_5_libs_4join_211asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults120), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults120, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults120, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_580__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_float_object, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_8_1__pyx_mdef_6pandas_5_libs_4join_213asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_8_1__pyx_mdef_6pandas_5_libs_4join_213asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults121), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults121, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults121, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_582__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_float_int64_t, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_8_2__pyx_mdef_6pandas_5_libs_4join_215asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_8_2__pyx_mdef_6pandas_5_libs_4join_215asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults122), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults122, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults122, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_584__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_float_uint64_t, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_9_0__pyx_mdef_6pandas_5_libs_4join_217asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_9_0__pyx_mdef_6pandas_5_libs_4join_217asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults123), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults123, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults123, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_586__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_float64_t_object, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_9_1__pyx_mdef_6pandas_5_libs_4join_219asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_9_1__pyx_mdef_6pandas_5_libs_4join_219asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults124), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults124, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults124, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_588__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_float64_t_int64_t, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_9_2__pyx_mdef_6pandas_5_libs_4join_221asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_fuse_9_2__pyx_mdef_6pandas_5_libs_4join_221asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults125), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults125, __pyx_t_15)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults125, __pyx_t_15)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_590__defaults__);
    if (PyDict_SetItem(__pyx_t_13, __pyx_kp_s_float64_t_uint64_t, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_16 = PyDict_New(); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_19asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_16, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    #else
    __pyx_t_15 = __pyx_FusedFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_19asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_15);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_15, sizeof(__pyx_defaults65), 1)) __PYX_ERR(0, 732, __pyx_L1_error)
/* … */
    #if CYTHON_COMPILING_IN_LIMITED_API
    __Pyx_INCREF(__pyx_t_15);
    if (PyModule_AddObject(__pyx_m, __pyx_k_asof_join_forward_on_X_by_Y, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    #else
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_asof_join_forward_on_X_by_Y, __pyx_t_15) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
    #endif
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_codeobj__58 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 18, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__57, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_asof_join_forward_on_X_by_Y, 732, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__58)) __PYX_ERR(0, 732, __pyx_L1_error)
 733:                                 asof_t[:] right_values,
 734:                                 by_t[:] left_by_values,
 735:                                 by_t[:] right_by_values,
+736:                                 bint allow_exact_matches=1,
    __pyx_t_13 = __Pyx_PyInt_From_long(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
/* … */
    __pyx_t_16 = __Pyx_PyInt_From_long(1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __Pyx_CyFunction_Defaults(__pyx_defaults65, __pyx_t_15)->__pyx_arg__fused_sigindex = __pyx_t_16;
    __Pyx_GIVEREF(__pyx_t_16);
    __pyx_t_16 = 0;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_14);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_15, __pyx_pf_6pandas_5_libs_4join_532__defaults__);
    ((__pyx_FusedFunctionObject *) __pyx_t_15)->__signatures__ = __pyx_t_13;
    __Pyx_GIVEREF(__pyx_t_13);
 737:                                 tolerance=None):
 738: 
 739:     cdef:
 740:         Py_ssize_t left_pos, right_pos, left_size, right_size, found_right_pos
 741:         ndarray[int64_t] left_indexer, right_indexer
+742:         bint has_tolerance = False
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
+743:         asof_t tolerance_ = 0
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0.0;
/* … */
  __pyx_v_tolerance_ = 0.0;
/* … */
  __pyx_v_tolerance_ = 0.0;
/* … */
  __pyx_v_tolerance_ = 0.0;
/* … */
  __pyx_v_tolerance_ = 0.0;
/* … */
  __pyx_v_tolerance_ = 0.0;
+744:         asof_t diff = 0
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0.0;
/* … */
  __pyx_v_diff = 0.0;
/* … */
  __pyx_v_diff = 0.0;
/* … */
  __pyx_v_diff = 0.0;
/* … */
  __pyx_v_diff = 0.0;
/* … */
  __pyx_v_diff = 0.0;
 745:         HashTable hash_table
 746:         by_t by_value
 747: 
 748:     # if we are using tolerance, set our objects
+749:     if tolerance is not None:
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
+750:         has_tolerance = True
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
+751:         tolerance_ = tolerance
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsFloat(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsFloat(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsFloat(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
 752: 
+753:     left_size = len(left_values)
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
+754:     right_size = len(right_values)
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
 755: 
+756:     left_indexer = np.empty(left_size, dtype=np.int64)
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 756, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
+757:     right_indexer = np.empty(left_size, dtype=np.int64)
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 757, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 757, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
 758: 
 759:     if by_t is object:
+760:         hash_table = PyObjectHashTable(right_size)
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
 761:     elif by_t is int64_t:
+762:         hash_table = Int64HashTable(right_size)
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
 763:     elif by_t is uint64_t:
+764:         hash_table = UInt64HashTable(right_size)
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
 765: 
+766:     right_pos = right_size - 1
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
+767:     for left_pos in range(left_size - 1, -1, -1):
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
 768:         # restart right_pos if it went over in a previous iteration
+769:         if right_pos == right_size:
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
+770:             right_pos = right_size - 1
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
 771: 
 772:         # find first position in right whose value is greater than left's
+773:         if allow_exact_matches:
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
+774:             while (right_pos >= 0 and
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
+775:                    right_values[right_pos] >= left_values[left_pos]):
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 775, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
+776:                 hash_table.set_item(right_by_values[right_pos], right_pos)
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 776, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_11, 2+__pyx_t_11);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+777:                 right_pos -= 1
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
 778:         else:
+779:             while (right_pos >= 0 and
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
+780:                    right_values[right_pos] > left_values[left_pos]):
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 780, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
+781:                 hash_table.set_item(right_by_values[right_pos], right_pos)
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_21 = __pyx_v_right_pos;
        __pyx_t_19 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_19 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_v_right_by_values.shape[0])) __pyx_t_19 = 0;
        if (unlikely(__pyx_t_19 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_19);
          __PYX_ERR(0, 781, __pyx_L1_error)
        }
        __pyx_t_5 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_21 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 781, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = NULL;
        __pyx_t_19 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_19 = 1;
          }
        }
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_5, __pyx_t_7};
          __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_19, 2+__pyx_t_19);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+782:                 right_pos -= 1
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
+783:         right_pos += 1
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
 784: 
 785:         # save positions as the desired index
+786:         by_value = left_by_values[left_pos]
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_23 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_23 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_v_left_by_values.shape[0])) __pyx_t_23 = 0;
    if (unlikely(__pyx_t_23 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_23);
      __PYX_ERR(0, 786, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_22 * __pyx_v_left_by_values.strides[0]) )));
+787:         found_right_pos = (hash_table.get_item(by_value)
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_by_value};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_by_value};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_by_value};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_by_value};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_by_value};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_by_value};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_by_value};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_by_value};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_by_value};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_by_value};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = NULL;
      __pyx_t_23 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_23 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7};
        __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_23, 1+__pyx_t_23);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_t_25 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_25 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_24 = __pyx_t_25;
    } else {
      __pyx_t_24 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_24;
+788:                            if by_value in hash_table else -1)
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 788, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
+789:         left_indexer[left_pos] = left_pos
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_26 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_26 < 0) {
      __pyx_t_26 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_26 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 789, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
+790:         right_indexer[left_pos] = found_right_pos
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_28 = __pyx_v_left_pos;
    __pyx_t_27 = -1;
    if (__pyx_t_28 < 0) {
      __pyx_t_28 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_28 < 0)) __pyx_t_27 = 0;
    } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
    if (unlikely(__pyx_t_27 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_27);
      __PYX_ERR(0, 790, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
 791: 
 792:         # if needed, verify that tolerance is met
+793:         if has_tolerance and found_right_pos != -1:
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
+794:             diff = right_values[found_right_pos] - left_values[left_pos]
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_29 = __pyx_v_found_right_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_left_pos;
      __pyx_t_27 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_27 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_v_left_values.shape[0])) __pyx_t_27 = 0;
      if (unlikely(__pyx_t_27 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_27);
        __PYX_ERR(0, 794, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_30 * __pyx_v_left_values.strides[0]) ))));
+795:             if diff > tolerance_:
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
+796:                 right_indexer[left_pos] = -1
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_31 = __pyx_v_left_pos;
        __pyx_t_27 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_27 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_27 = 0;
        if (unlikely(__pyx_t_27 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_27);
          __PYX_ERR(0, 796, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
 797: 
+798:     return left_indexer, right_indexer
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
 799: 
 800: 
+801: def asof_join_nearest_on_X_by_Y(asof_t[:] left_values,
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_21asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_21asof_join_nearest_on_X_by_Y = {"asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pandas_5_libs_4join_21asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6pandas_5_libs_4join_21asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  PyObject *__pyx_v__fused_sigindex = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,&__pyx_n_s_fused_sigindex,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,&__pyx_n_s_fused_sigindex,0};
    #endif
    PyObject* values[5] = {0,0,0,0,0};
    __pyx_defaults126 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults126, __pyx_self);
    values[4] = __pyx_dynamic_args->__pyx_arg__fused_sigindex;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_signatures)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_args)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_defaults)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fused_sigindex);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const 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_fused_cpdef") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
    __pyx_v__fused_sigindex = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_20asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults, __pyx_v__fused_sigindex);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_20asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults, PyObject *__pyx_v__fused_sigindex) {
  PyObject *__pyx_v_search_list = 0;
  PyObject *__pyx_v_sn = 0;
  PyObject *__pyx_v_sigindex_node = 0;
  PyObject *__pyx_v_dest_sig = NULL;
  PyTypeObject *__pyx_v_ndarray = 0;
  __Pyx_memviewslice __pyx_v_memslice;
  Py_ssize_t __pyx_v_itemsize;
  int __pyx_v_dtype_signed;
  char __pyx_v_kind;
  int __pyx_v____pyx_uint8_t_is_signed;
  int __pyx_v____pyx_uint16_t_is_signed;
  int __pyx_v____pyx_uint32_t_is_signed;
  int __pyx_v____pyx_uint64_t_is_signed;
  int __pyx_v____pyx_int8_t_is_signed;
  int __pyx_v____pyx_int16_t_is_signed;
  int __pyx_v____pyx_int32_t_is_signed;
  int __pyx_v____pyx_int64_t_is_signed;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_dtype = NULL;
  PyObject *__pyx_v_arg_base = NULL;
  PyObject *__pyx_v_sig = NULL;
  PyObject *__pyx_v_sig_series = NULL;
  PyObject *__pyx_v_sig_type = NULL;
  PyObject *__pyx_v_sigindex_matches = NULL;
  PyObject *__pyx_v_sigindex_candidates = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_v_found_matches = NULL;
  PyObject *__pyx_v_found_candidates = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  { Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
      __Pyx_INCREF(Py_None);
      __Pyx_GIVEREF(Py_None);
      PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
    }
  }
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  __pyx_v____pyx_uint8_t_is_signed = (!((((__pyx_t_5numpy_uint8_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint16_t_is_signed = (!((((__pyx_t_5numpy_uint16_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint32_t_is_signed = (!((((__pyx_t_5numpy_uint32_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
  __pyx_v____pyx_int8_t_is_signed = (!((((__pyx_t_5numpy_int8_t)-1L) > 0) != 0));
  __pyx_v____pyx_int16_t_is_signed = (!((((__pyx_t_5numpy_int16_t)-1L) > 0) != 0));
  __pyx_v____pyx_int32_t_is_signed = (!((((__pyx_t_5numpy_int32_t)-1L) > 0) != 0));
  __pyx_v____pyx_int64_t_is_signed = (!((((__pyx_t_5numpy_int64_t)-1L) > 0) != 0));
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 801, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 801, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 801, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 801, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_left_values, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (likely(__pyx_t_2)) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 801, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_left_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 801, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 801, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_4);
    __Pyx_GIVEREF(__pyx_int_4);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_4);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 801, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_dtype = __pyx_t_6;
        __pyx_t_6 = 0;
        goto __pyx_L12;
      }
      __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg); 
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_arg_base = __pyx_t_6;
        __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
        __pyx_t_2 = (__pyx_t_3 != 0);
        if (__pyx_t_2) {
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_v_dtype = __pyx_t_6;
          __pyx_t_6 = 0;
          goto __pyx_L13;
        }
        /*else*/ {
          __Pyx_INCREF(Py_None);
          __pyx_v_dtype = Py_None;
        }
        __pyx_L13:;
        goto __pyx_L12;
      }
      /*else*/ {
        __Pyx_INCREF(Py_None);
        __pyx_v_dtype = Py_None;
      }
      __pyx_L12:;
      __pyx_v_itemsize = -1L;
      __pyx_t_2 = (__pyx_v_dtype != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_itemsize = __pyx_t_5;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 801, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_kind = __pyx_t_7;
        __pyx_v_dtype_signed = (__pyx_v_kind == 'i');
        switch (__pyx_v_kind) {
          case 'i':
          case 'u':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L16_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L20_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L24_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L28_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L32_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L36_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L40_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L44_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'f':
          __pyx_t_2 = (((sizeof(float)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L48_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L48_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L51_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L51_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'c':
          break;
          case 'O':
          break;
          default: break;
        }
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L54_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L54_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L58_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L58_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L62_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L62_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L66_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L66_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L70_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L70_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L74_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L74_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L78_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L78_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L82_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L82_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L86_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(float))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L86_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_float(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L90_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L90_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 801, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 801, __pyx_L1_error)
  __pyx_t_3 = ((2 < __pyx_t_5) != 0);
  if (__pyx_t_3) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 801, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L93;
  }
  __pyx_t_2 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_2 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L94_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 801, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_left_by_values, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
  __pyx_t_2 = (__pyx_t_4 != 0);
  __pyx_t_3 = __pyx_t_2;
  __pyx_L94_bool_binop_done:;
  if (likely(__pyx_t_3)) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 801, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_left_by_values); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L93;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 801, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 801, __pyx_L1_error)
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_int_4);
    __Pyx_GIVEREF(__pyx_int_4);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_4);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 801, __pyx_L1_error)
  }
  __pyx_L93:;
  while (1) {
    __pyx_t_3 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
        __pyx_t_1 = 0;
        goto __pyx_L99;
      }
      __pyx_t_3 = __pyx_memoryview_check(__pyx_v_arg); 
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_XDECREF_SET(__pyx_v_arg_base, __pyx_t_1);
        __pyx_t_1 = 0;
        __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
        __pyx_t_3 = (__pyx_t_2 != 0);
        if (__pyx_t_3) {
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
          __pyx_t_1 = 0;
          goto __pyx_L100;
        }
        /*else*/ {
          __Pyx_INCREF(Py_None);
          __Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
        }
        __pyx_L100:;
        goto __pyx_L99;
      }
      /*else*/ {
        __Pyx_INCREF(Py_None);
        __Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
      }
      __pyx_L99:;
      __pyx_v_itemsize = -1L;
      __pyx_t_3 = (__pyx_v_dtype != Py_None);
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_v_itemsize = __pyx_t_5;
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_1); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 801, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_v_kind = __pyx_t_7;
        __pyx_v_dtype_signed = (__pyx_v_kind == 'i');
        switch (__pyx_v_kind) {
          case 'i':
          case 'u':
          __pyx_t_3 = (((sizeof(__pyx_t_5numpy_int64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L103_bool_binop_done;
          }
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L103_bool_binop_done;
          }
          __pyx_t_3 = ((!((__pyx_v____pyx_int64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L103_bool_binop_done:;
          if (__pyx_t_2) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
            goto __pyx_L97_break;
          }
          __pyx_t_3 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L107_bool_binop_done;
          }
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L107_bool_binop_done;
          }
          __pyx_t_3 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L107_bool_binop_done:;
          if (__pyx_t_2) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
            goto __pyx_L97_break;
          }
          break;
          case 'f':
          break;
          case 'c':
          break;
          case 'O':
          break;
          default: break;
        }
      }
    }
    __pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L111_bool_binop_done;
    }
    __pyx_t_3 = ((__pyx_v_itemsize == (sizeof(void *))) != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L111_bool_binop_done:;
    if (__pyx_t_2) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_object(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_2 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_2) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_object, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
        goto __pyx_L97_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L115_bool_binop_done;
    }
    __pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int64_t))) != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L115_bool_binop_done:;
    if (__pyx_t_2) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_2 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_2) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
        goto __pyx_L97_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L119_bool_binop_done;
    }
    __pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L119_bool_binop_done:;
    if (__pyx_t_2) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_2 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_2) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
        goto __pyx_L97_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
    goto __pyx_L97_break;
  }
  __pyx_L97_break:;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v__fused_sigindex); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (__pyx_t_3) {
    __pyx_t_5 = 0;
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
      __PYX_ERR(0, 801, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_1);
    __pyx_t_1 = __pyx_t_6;
    __pyx_t_6 = 0;
    while (1) {
      __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_9, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_10);
      if (unlikely(__pyx_t_11 == 0)) break;
      if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
      __pyx_t_6 = 0;
      if (!(likely(PyDict_CheckExact(__pyx_v__fused_sigindex))||((__pyx_v__fused_sigindex) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_v__fused_sigindex))), 0))) __PYX_ERR(0, 801, __pyx_L1_error)
      __pyx_t_6 = __pyx_v__fused_sigindex;
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_sigindex_node, ((PyObject*)__pyx_t_6));
      __pyx_t_6 = 0;
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_14 = NULL;
      __pyx_t_11 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
        __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
        if (likely(__pyx_t_14)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_14);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_13, function);
          __pyx_t_11 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_14, __pyx_kp_s__2};
        __pyx_t_12 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_11, 1+__pyx_t_11);
        __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 801, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_12 = NULL;
      __pyx_t_15 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
        __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
        if (likely(__pyx_t_12)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_12);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_13, function);
          __pyx_t_15 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_kp_s__3};
        __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_15, 1+__pyx_t_15);
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __Pyx_XDECREF_SET(__pyx_v_sig_series, __pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_GetSlice(__pyx_v_sig_series, 0, -1L, NULL, NULL, &__pyx_slice__4, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
        __pyx_t_13 = __pyx_t_6; __Pyx_INCREF(__pyx_t_13); __pyx_t_16 = 0;
        __pyx_t_17 = NULL;
      } else {
        __pyx_t_16 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 801, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_17 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 801, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      for (;;) {
        if (likely(!__pyx_t_17)) {
          if (likely(PyList_CheckExact(__pyx_t_13))) {
            if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_13)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_6 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_6); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
            #else
            __pyx_t_6 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          } else {
            if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_6); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
            #else
            __pyx_t_6 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          }
        } else {
          __pyx_t_6 = __pyx_t_17(__pyx_t_13);
          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, 801, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_6);
        }
        __Pyx_XDECREF_SET(__pyx_v_sig_type, __pyx_t_6);
        __pyx_t_6 = 0;
        if (unlikely(__pyx_v_sigindex_node == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
          __PYX_ERR(0, 801, __pyx_L1_error)
        }
        __pyx_t_3 = (__Pyx_PyDict_ContainsTF(__pyx_v_sig_type, __pyx_v_sigindex_node, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
        __pyx_t_2 = (__pyx_t_3 != 0);
        if (__pyx_t_2) {
          __pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (unlikely(__pyx_v_sigindex_node == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 801, __pyx_L1_error)
          }
          if (unlikely(PyDict_SetItem(__pyx_v_sigindex_node, __pyx_v_sig_type, __pyx_t_6) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_DECREF_SET(__pyx_v_sigindex_node, __pyx_t_6);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          goto __pyx_L127;
        }
        /*else*/ {
          if (unlikely(__pyx_v_sigindex_node == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 801, __pyx_L1_error)
          }
          __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_sigindex_node, __pyx_v_sig_type); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (!(likely(PyDict_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_6))), 0))) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_DECREF_SET(__pyx_v_sigindex_node, ((PyObject*)__pyx_t_6));
          __pyx_t_6 = 0;
        }
        __pyx_L127:;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      if (unlikely(__pyx_v_sigindex_node == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(0, 801, __pyx_L1_error)
      }
      __pyx_t_13 = __Pyx_GetItemInt(__pyx_v_sig_series, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      if (unlikely(PyDict_SetItem(__pyx_v_sigindex_node, __pyx_t_13, __pyx_v_sig) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_sigindex_matches = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v__fused_sigindex);
  __Pyx_GIVEREF(__pyx_v__fused_sigindex);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v__fused_sigindex);
  __pyx_v_sigindex_candidates = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_v_dest_sig; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0;
  for (;;) {
    if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_13 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_13); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
    #else
    __pyx_t_13 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_13);
    __pyx_t_13 = 0;
    __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_XDECREF_SET(__pyx_v_found_matches, ((PyObject*)__pyx_t_13));
    __pyx_t_13 = 0;
    __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_XDECREF_SET(__pyx_v_found_candidates, ((PyObject*)__pyx_t_13));
    __pyx_t_13 = 0;
    __pyx_t_2 = (__pyx_v_dst_type == Py_None);
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      __pyx_t_13 = __pyx_v_sigindex_matches; __Pyx_INCREF(__pyx_t_13); __pyx_t_5 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_5); __Pyx_INCREF(__pyx_t_6); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_13, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
        if (!(likely(PyDict_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_6))), 0))) __PYX_ERR(0, 801, __pyx_L1_error)
        __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_6));
        __pyx_t_6 = 0;
        if (unlikely(__pyx_v_sn == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
          __PYX_ERR(0, 801, __pyx_L1_error)
        }
        __pyx_t_6 = __Pyx_PyDict_Values(__pyx_v_sn); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_18 = __Pyx_PyList_Extend(__pyx_v_found_matches, __pyx_t_6); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 801, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_13 = __pyx_v_sigindex_candidates; __Pyx_INCREF(__pyx_t_13); __pyx_t_5 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_5); __Pyx_INCREF(__pyx_t_6); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_13, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
        if (!(likely(PyDict_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_6))), 0))) __PYX_ERR(0, 801, __pyx_L1_error)
        __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_6));
        __pyx_t_6 = 0;
        if (unlikely(__pyx_v_sn == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
          __PYX_ERR(0, 801, __pyx_L1_error)
        }
        __pyx_t_6 = __Pyx_PyDict_Values(__pyx_v_sn); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_18 = __Pyx_PyList_Extend(__pyx_v_found_candidates, __pyx_t_6); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 801, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      goto __pyx_L130;
    }
    /*else*/ {
      __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_INCREF(__pyx_v_sigindex_matches);
      __Pyx_GIVEREF(__pyx_v_sigindex_matches);
      PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_v_sigindex_matches);
      __Pyx_INCREF(__pyx_v_sigindex_candidates);
      __Pyx_GIVEREF(__pyx_v_sigindex_candidates);
      PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_v_sigindex_candidates);
      __pyx_t_6 = __pyx_t_13; __Pyx_INCREF(__pyx_t_6); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      for (;;) {
        if (__pyx_t_5 >= 2) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_5); __Pyx_INCREF(__pyx_t_13); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
        #else
        __pyx_t_13 = PySequence_ITEM(__pyx_t_6, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 801, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        #endif
        __Pyx_XDECREF_SET(__pyx_v_search_list, ((PyObject*)__pyx_t_13));
        __pyx_t_13 = 0;
        if (unlikely(__pyx_v_search_list == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
          __PYX_ERR(0, 801, __pyx_L1_error)
        }
        __pyx_t_13 = __pyx_v_search_list; __Pyx_INCREF(__pyx_t_13); __pyx_t_16 = 0;
        for (;;) {
          if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_13)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_12 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_12); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
          #else
          __pyx_t_12 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          #endif
          if (!(likely(PyDict_CheckExact(__pyx_t_12))||((__pyx_t_12) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_12))), 0))) __PYX_ERR(0, 801, __pyx_L1_error)
          __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_12));
          __pyx_t_12 = 0;
          if (unlikely(__pyx_v_sn == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
            __PYX_ERR(0, 801, __pyx_L1_error)
          }
          __pyx_t_3 = (__Pyx_PyDict_ContainsTF(__pyx_v_dst_type, __pyx_v_sn, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
          __pyx_t_2 = (__pyx_t_3 != 0);
          if (__pyx_t_2) {
            if (unlikely(__pyx_v_sn == Py_None)) {
              PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
              __PYX_ERR(0, 801, __pyx_L1_error)
            }
            __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_sn, __pyx_v_dst_type); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 801, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_found_matches, __pyx_t_12); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 801, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          }
        }
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __pyx_L130:;
    __Pyx_INCREF(__pyx_v_found_matches);
    __Pyx_DECREF_SET(__pyx_v_sigindex_matches, __pyx_v_found_matches);
    __Pyx_INCREF(__pyx_v_found_candidates);
    __Pyx_DECREF_SET(__pyx_v_sigindex_candidates, __pyx_v_found_candidates);
    __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_found_matches) != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L141_bool_binop_done;
    }
    __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_found_candidates) != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L141_bool_binop_done:;
    __pyx_t_3 = ((!__pyx_t_2) != 0);
    if (__pyx_t_3) {
      goto __pyx_L129_break;
    }
  }
  __pyx_L129_break:;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_INCREF(__pyx_v_sigindex_matches);
  __pyx_v_candidates = __pyx_v_sigindex_matches;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (unlikely(__pyx_t_2)) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 801, __pyx_L1_error)
  }
  __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 801, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_9 > 1) != 0);
  if (unlikely(__pyx_t_2)) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 801, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 801, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_search_list);
  __Pyx_XDECREF(__pyx_v_sn);
  __Pyx_XDECREF(__pyx_v_sigindex_node);
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF((PyObject *)__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_dtype);
  __Pyx_XDECREF(__pyx_v_arg_base);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_sig_series);
  __Pyx_XDECREF(__pyx_v_sig_type);
  __Pyx_XDECREF(__pyx_v_sigindex_matches);
  __Pyx_XDECREF(__pyx_v_sigindex_candidates);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_found_matches);
  __Pyx_XDECREF(__pyx_v_found_candidates);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_652__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults157, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults157, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults157, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults157, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_0_0__pyx_pw_6pandas_5_libs_4join_225asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_6pandas_5_libs_4join_225asof_join_nearest_on_X_by_Y = {"__pyx_fuse_0_0asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_0__pyx_pw_6pandas_5_libs_4join_225asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_0_0__pyx_pw_6pandas_5_libs_4join_225asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults157 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults157, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_224asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_224asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint8_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint8_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_654__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults158, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults158, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults158, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults158, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_0_1__pyx_pw_6pandas_5_libs_4join_227asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_6pandas_5_libs_4join_227asof_join_nearest_on_X_by_Y = {"__pyx_fuse_0_1asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_1__pyx_pw_6pandas_5_libs_4join_227asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_0_1__pyx_pw_6pandas_5_libs_4join_227asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults158 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults158, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_226asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_226asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint8_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint8_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_656__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults159, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults159, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults159, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults159, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_0_2__pyx_pw_6pandas_5_libs_4join_229asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_2__pyx_mdef_6pandas_5_libs_4join_229asof_join_nearest_on_X_by_Y = {"__pyx_fuse_0_2asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_2__pyx_pw_6pandas_5_libs_4join_229asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_0_2__pyx_pw_6pandas_5_libs_4join_229asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults159 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults159, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_228asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_228asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint8_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint8_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_2asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_658__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults160, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults160, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults160, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults160, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_1_0__pyx_pw_6pandas_5_libs_4join_231asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_6pandas_5_libs_4join_231asof_join_nearest_on_X_by_Y = {"__pyx_fuse_1_0asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_0__pyx_pw_6pandas_5_libs_4join_231asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_1_0__pyx_pw_6pandas_5_libs_4join_231asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults160 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults160, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_230asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_230asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint16_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint16_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_660__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults161, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults161, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults161, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults161, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_1_1__pyx_pw_6pandas_5_libs_4join_233asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_6pandas_5_libs_4join_233asof_join_nearest_on_X_by_Y = {"__pyx_fuse_1_1asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_1__pyx_pw_6pandas_5_libs_4join_233asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_1_1__pyx_pw_6pandas_5_libs_4join_233asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults161 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults161, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_232asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_232asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint16_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint16_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_662__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults162, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults162, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults162, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults162, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_1_2__pyx_pw_6pandas_5_libs_4join_235asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_2__pyx_mdef_6pandas_5_libs_4join_235asof_join_nearest_on_X_by_Y = {"__pyx_fuse_1_2asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_2__pyx_pw_6pandas_5_libs_4join_235asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_1_2__pyx_pw_6pandas_5_libs_4join_235asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults162 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults162, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_234asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_234asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint16_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint16_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_2asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_664__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults163, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults163, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults163, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults163, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_2_0__pyx_pw_6pandas_5_libs_4join_237asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2_0__pyx_mdef_6pandas_5_libs_4join_237asof_join_nearest_on_X_by_Y = {"__pyx_fuse_2_0asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2_0__pyx_pw_6pandas_5_libs_4join_237asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_2_0__pyx_pw_6pandas_5_libs_4join_237asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults163 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults163, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_236asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_236asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint32_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint32_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2_0asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_666__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults164, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults164, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults164, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults164, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_2_1__pyx_pw_6pandas_5_libs_4join_239asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2_1__pyx_mdef_6pandas_5_libs_4join_239asof_join_nearest_on_X_by_Y = {"__pyx_fuse_2_1asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2_1__pyx_pw_6pandas_5_libs_4join_239asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_2_1__pyx_pw_6pandas_5_libs_4join_239asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults164 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults164, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_238asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_238asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint32_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint32_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2_1asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_668__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults165, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults165, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults165, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults165, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_2_2__pyx_pw_6pandas_5_libs_4join_241asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2_2__pyx_mdef_6pandas_5_libs_4join_241asof_join_nearest_on_X_by_Y = {"__pyx_fuse_2_2asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2_2__pyx_pw_6pandas_5_libs_4join_241asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_2_2__pyx_pw_6pandas_5_libs_4join_241asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults165 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults165, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_240asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_240asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint32_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint32_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2_2asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_670__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults166, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults166, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults166, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults166, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_3_0__pyx_pw_6pandas_5_libs_4join_243asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3_0__pyx_mdef_6pandas_5_libs_4join_243asof_join_nearest_on_X_by_Y = {"__pyx_fuse_3_0asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3_0__pyx_pw_6pandas_5_libs_4join_243asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_3_0__pyx_pw_6pandas_5_libs_4join_243asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults166 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults166, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_242asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_242asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint64_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3_0asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_672__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults167, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults167, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults167, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults167, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_3_1__pyx_pw_6pandas_5_libs_4join_245asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3_1__pyx_mdef_6pandas_5_libs_4join_245asof_join_nearest_on_X_by_Y = {"__pyx_fuse_3_1asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3_1__pyx_pw_6pandas_5_libs_4join_245asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_3_1__pyx_pw_6pandas_5_libs_4join_245asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults167 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults167, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_244asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_244asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint64_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3_1asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_674__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults168, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults168, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults168, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults168, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_3_2__pyx_pw_6pandas_5_libs_4join_247asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3_2__pyx_mdef_6pandas_5_libs_4join_247asof_join_nearest_on_X_by_Y = {"__pyx_fuse_3_2asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3_2__pyx_pw_6pandas_5_libs_4join_247asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_3_2__pyx_pw_6pandas_5_libs_4join_247asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults168 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults168, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_246asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_246asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint64_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3_2asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_676__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults169, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults169, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults169, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults169, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_4_0__pyx_pw_6pandas_5_libs_4join_249asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4_0__pyx_mdef_6pandas_5_libs_4join_249asof_join_nearest_on_X_by_Y = {"__pyx_fuse_4_0asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4_0__pyx_pw_6pandas_5_libs_4join_249asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_4_0__pyx_pw_6pandas_5_libs_4join_249asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults169 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults169, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_248asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_248asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int8_t __pyx_v_bdiff;
  __pyx_t_5numpy_int8_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4_0asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_678__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults170, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults170, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults170, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults170, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_4_1__pyx_pw_6pandas_5_libs_4join_251asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4_1__pyx_mdef_6pandas_5_libs_4join_251asof_join_nearest_on_X_by_Y = {"__pyx_fuse_4_1asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4_1__pyx_pw_6pandas_5_libs_4join_251asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_4_1__pyx_pw_6pandas_5_libs_4join_251asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults170 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults170, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_250asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_250asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int8_t __pyx_v_bdiff;
  __pyx_t_5numpy_int8_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4_1asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_680__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults171, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults171, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults171, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults171, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_4_2__pyx_pw_6pandas_5_libs_4join_253asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4_2__pyx_mdef_6pandas_5_libs_4join_253asof_join_nearest_on_X_by_Y = {"__pyx_fuse_4_2asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4_2__pyx_pw_6pandas_5_libs_4join_253asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_4_2__pyx_pw_6pandas_5_libs_4join_253asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults171 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults171, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_252asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_252asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int8_t __pyx_v_bdiff;
  __pyx_t_5numpy_int8_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4_2asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_682__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults172, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults172, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults172, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults172, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_5_0__pyx_pw_6pandas_5_libs_4join_255asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5_0__pyx_mdef_6pandas_5_libs_4join_255asof_join_nearest_on_X_by_Y = {"__pyx_fuse_5_0asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5_0__pyx_pw_6pandas_5_libs_4join_255asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_5_0__pyx_pw_6pandas_5_libs_4join_255asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults172 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults172, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_254asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_254asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int16_t __pyx_v_bdiff;
  __pyx_t_5numpy_int16_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5_0asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_684__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults173, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults173, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults173, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults173, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_5_1__pyx_pw_6pandas_5_libs_4join_257asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5_1__pyx_mdef_6pandas_5_libs_4join_257asof_join_nearest_on_X_by_Y = {"__pyx_fuse_5_1asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5_1__pyx_pw_6pandas_5_libs_4join_257asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_5_1__pyx_pw_6pandas_5_libs_4join_257asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults173 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults173, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_256asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_256asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int16_t __pyx_v_bdiff;
  __pyx_t_5numpy_int16_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5_1asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_686__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults174, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults174, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults174, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults174, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_5_2__pyx_pw_6pandas_5_libs_4join_259asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5_2__pyx_mdef_6pandas_5_libs_4join_259asof_join_nearest_on_X_by_Y = {"__pyx_fuse_5_2asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5_2__pyx_pw_6pandas_5_libs_4join_259asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_5_2__pyx_pw_6pandas_5_libs_4join_259asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults174 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults174, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_258asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_258asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int16_t __pyx_v_bdiff;
  __pyx_t_5numpy_int16_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5_2asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_688__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults175, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults175, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults175, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults175, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_6_0__pyx_pw_6pandas_5_libs_4join_261asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6_0__pyx_mdef_6pandas_5_libs_4join_261asof_join_nearest_on_X_by_Y = {"__pyx_fuse_6_0asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6_0__pyx_pw_6pandas_5_libs_4join_261asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_6_0__pyx_pw_6pandas_5_libs_4join_261asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults175 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults175, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_260asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_260asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int32_t __pyx_v_bdiff;
  __pyx_t_5numpy_int32_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6_0asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_690__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults176, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults176, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults176, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults176, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_6_1__pyx_pw_6pandas_5_libs_4join_263asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6_1__pyx_mdef_6pandas_5_libs_4join_263asof_join_nearest_on_X_by_Y = {"__pyx_fuse_6_1asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6_1__pyx_pw_6pandas_5_libs_4join_263asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_6_1__pyx_pw_6pandas_5_libs_4join_263asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults176 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults176, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_262asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_262asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int32_t __pyx_v_bdiff;
  __pyx_t_5numpy_int32_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6_1asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_692__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults177, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults177, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults177, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults177, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_6_2__pyx_pw_6pandas_5_libs_4join_265asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6_2__pyx_mdef_6pandas_5_libs_4join_265asof_join_nearest_on_X_by_Y = {"__pyx_fuse_6_2asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6_2__pyx_pw_6pandas_5_libs_4join_265asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_6_2__pyx_pw_6pandas_5_libs_4join_265asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults177 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults177, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_264asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_264asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int32_t __pyx_v_bdiff;
  __pyx_t_5numpy_int32_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6_2asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_694__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults178, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults178, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults178, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults178, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_7_0__pyx_pw_6pandas_5_libs_4join_267asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7_0__pyx_mdef_6pandas_5_libs_4join_267asof_join_nearest_on_X_by_Y = {"__pyx_fuse_7_0asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7_0__pyx_pw_6pandas_5_libs_4join_267asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_7_0__pyx_pw_6pandas_5_libs_4join_267asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults178 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults178, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_266asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_266asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int64_t __pyx_v_bdiff;
  __pyx_t_5numpy_int64_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7_0asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_696__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults179, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults179, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults179, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults179, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_7_1__pyx_pw_6pandas_5_libs_4join_269asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7_1__pyx_mdef_6pandas_5_libs_4join_269asof_join_nearest_on_X_by_Y = {"__pyx_fuse_7_1asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7_1__pyx_pw_6pandas_5_libs_4join_269asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_7_1__pyx_pw_6pandas_5_libs_4join_269asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults179 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults179, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_268asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_268asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int64_t __pyx_v_bdiff;
  __pyx_t_5numpy_int64_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7_1asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_698__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults180, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults180, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults180, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults180, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_7_2__pyx_pw_6pandas_5_libs_4join_271asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7_2__pyx_mdef_6pandas_5_libs_4join_271asof_join_nearest_on_X_by_Y = {"__pyx_fuse_7_2asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7_2__pyx_pw_6pandas_5_libs_4join_271asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_7_2__pyx_pw_6pandas_5_libs_4join_271asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults180 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults180, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_270asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_270asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int64_t __pyx_v_bdiff;
  __pyx_t_5numpy_int64_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7_2asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_700__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults181, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults181, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults181, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults181, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_8_0__pyx_pw_6pandas_5_libs_4join_273asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8_0__pyx_mdef_6pandas_5_libs_4join_273asof_join_nearest_on_X_by_Y = {"__pyx_fuse_8_0asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8_0__pyx_pw_6pandas_5_libs_4join_273asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_8_0__pyx_pw_6pandas_5_libs_4join_273asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults181 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults181, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_272asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_272asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  float __pyx_v_bdiff;
  float __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8_0asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_702__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults182, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults182, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults182, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults182, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_8_1__pyx_pw_6pandas_5_libs_4join_275asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8_1__pyx_mdef_6pandas_5_libs_4join_275asof_join_nearest_on_X_by_Y = {"__pyx_fuse_8_1asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8_1__pyx_pw_6pandas_5_libs_4join_275asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_8_1__pyx_pw_6pandas_5_libs_4join_275asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults182 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults182, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_274asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_274asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  float __pyx_v_bdiff;
  float __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8_1asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_704__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults183, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults183, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults183, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults183, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_8_2__pyx_pw_6pandas_5_libs_4join_277asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8_2__pyx_mdef_6pandas_5_libs_4join_277asof_join_nearest_on_X_by_Y = {"__pyx_fuse_8_2asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8_2__pyx_pw_6pandas_5_libs_4join_277asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_8_2__pyx_pw_6pandas_5_libs_4join_277asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults183 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults183, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_276asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_276asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  float __pyx_v_bdiff;
  float __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8_2asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_706__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults184, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults184, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults184, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults184, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_9_0__pyx_pw_6pandas_5_libs_4join_279asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9_0__pyx_mdef_6pandas_5_libs_4join_279asof_join_nearest_on_X_by_Y = {"__pyx_fuse_9_0asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9_0__pyx_pw_6pandas_5_libs_4join_279asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_9_0__pyx_pw_6pandas_5_libs_4join_279asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults184 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults184, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_278asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_278asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_float64_t __pyx_v_bdiff;
  __pyx_t_5numpy_float64_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9_0asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_708__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults185, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults185, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults185, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults185, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_9_1__pyx_pw_6pandas_5_libs_4join_281asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9_1__pyx_mdef_6pandas_5_libs_4join_281asof_join_nearest_on_X_by_Y = {"__pyx_fuse_9_1asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9_1__pyx_pw_6pandas_5_libs_4join_281asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_9_1__pyx_pw_6pandas_5_libs_4join_281asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults185 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults185, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_280asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_280asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_float64_t __pyx_v_bdiff;
  __pyx_t_5numpy_float64_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9_1asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_710__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults186, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults186, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults186, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults186, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_9_2__pyx_pw_6pandas_5_libs_4join_283asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9_2__pyx_mdef_6pandas_5_libs_4join_283asof_join_nearest_on_X_by_Y = {"__pyx_fuse_9_2asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9_2__pyx_pw_6pandas_5_libs_4join_283asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_9_2__pyx_pw_6pandas_5_libs_4join_283asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults186 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults186, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 801, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  6: values[5] = __Pyx_Arg_VARARGS(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 801, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 802, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 803, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 804, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 805, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, __pyx_nargs); __PYX_ERR(0, 801, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_282asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_282asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_float64_t __pyx_v_bdiff;
  __pyx_t_5numpy_float64_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9_2asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
    __pyx_t_17 = PyTuple_New(2); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    __Pyx_GIVEREF(__pyx_t_16);
    PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_16);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_17, 1, Py_None);
    __pyx_t_16 = 0;
/* … */
  __pyx_tuple__59 = PyTuple_Pack(17, __pyx_n_s_left_values, __pyx_n_s_right_values, __pyx_n_s_left_by_values, __pyx_n_s_right_by_values, __pyx_n_s_allow_exact_matches, __pyx_n_s_tolerance, __pyx_n_s_left_size, __pyx_n_s_right_size, __pyx_n_s_i, __pyx_n_s_left_indexer, __pyx_n_s_right_indexer, __pyx_n_s_bli, __pyx_n_s_bri, __pyx_n_s_fli, __pyx_n_s_fri, __pyx_n_s_bdiff, __pyx_n_s_fdiff); if (unlikely(!__pyx_tuple__59)) __PYX_ERR(0, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__59);
  __Pyx_GIVEREF(__pyx_tuple__59);
    __pyx_t_16 = __Pyx_PyDict_NewPresized(30); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0_0__pyx_mdef_6pandas_5_libs_4join_225asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0_0__pyx_mdef_6pandas_5_libs_4join_225asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults157), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults157, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults157, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_652__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_uint8_t_object, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0_1__pyx_mdef_6pandas_5_libs_4join_227asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0_1__pyx_mdef_6pandas_5_libs_4join_227asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults158), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults158, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults158, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_654__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_uint8_t_int64_t, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0_2__pyx_mdef_6pandas_5_libs_4join_229asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0_2__pyx_mdef_6pandas_5_libs_4join_229asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults159), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults159, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults159, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_656__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_uint8_t_uint64_t, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1_0__pyx_mdef_6pandas_5_libs_4join_231asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1_0__pyx_mdef_6pandas_5_libs_4join_231asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults160), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults160, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults160, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_658__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_uint16_t_object, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1_1__pyx_mdef_6pandas_5_libs_4join_233asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1_1__pyx_mdef_6pandas_5_libs_4join_233asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults161), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults161, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults161, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_660__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_uint16_t_int64_t, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1_2__pyx_mdef_6pandas_5_libs_4join_235asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1_2__pyx_mdef_6pandas_5_libs_4join_235asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults162), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults162, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults162, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_662__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_uint16_t_uint64_t, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2_0__pyx_mdef_6pandas_5_libs_4join_237asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2_0__pyx_mdef_6pandas_5_libs_4join_237asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults163), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults163, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults163, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_664__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_uint32_t_object, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2_1__pyx_mdef_6pandas_5_libs_4join_239asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2_1__pyx_mdef_6pandas_5_libs_4join_239asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults164), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults164, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults164, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_666__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_uint32_t_int64_t, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2_2__pyx_mdef_6pandas_5_libs_4join_241asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2_2__pyx_mdef_6pandas_5_libs_4join_241asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults165), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults165, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults165, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_668__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_uint32_t_uint64_t, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3_0__pyx_mdef_6pandas_5_libs_4join_243asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3_0__pyx_mdef_6pandas_5_libs_4join_243asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults166), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults166, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults166, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_670__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_uint64_t_object, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3_1__pyx_mdef_6pandas_5_libs_4join_245asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3_1__pyx_mdef_6pandas_5_libs_4join_245asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults167), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults167, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults167, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_672__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_uint64_t_int64_t, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3_2__pyx_mdef_6pandas_5_libs_4join_247asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3_2__pyx_mdef_6pandas_5_libs_4join_247asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults168), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults168, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults168, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_674__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_uint64_t_uint64_t, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4_0__pyx_mdef_6pandas_5_libs_4join_249asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4_0__pyx_mdef_6pandas_5_libs_4join_249asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults169), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults169, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults169, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_676__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_int8_t_object, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4_1__pyx_mdef_6pandas_5_libs_4join_251asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4_1__pyx_mdef_6pandas_5_libs_4join_251asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults170), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults170, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults170, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_678__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_int8_t_int64_t, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4_2__pyx_mdef_6pandas_5_libs_4join_253asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4_2__pyx_mdef_6pandas_5_libs_4join_253asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults171), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults171, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults171, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_680__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_int8_t_uint64_t, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5_0__pyx_mdef_6pandas_5_libs_4join_255asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5_0__pyx_mdef_6pandas_5_libs_4join_255asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults172), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults172, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults172, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_682__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_int16_t_object, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5_1__pyx_mdef_6pandas_5_libs_4join_257asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5_1__pyx_mdef_6pandas_5_libs_4join_257asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults173), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults173, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults173, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_684__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_int16_t_int64_t, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5_2__pyx_mdef_6pandas_5_libs_4join_259asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5_2__pyx_mdef_6pandas_5_libs_4join_259asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults174), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults174, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults174, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_686__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_int16_t_uint64_t, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6_0__pyx_mdef_6pandas_5_libs_4join_261asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6_0__pyx_mdef_6pandas_5_libs_4join_261asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults175), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults175, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults175, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_688__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_int32_t_object, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6_1__pyx_mdef_6pandas_5_libs_4join_263asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6_1__pyx_mdef_6pandas_5_libs_4join_263asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults176), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults176, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults176, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_690__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_int32_t_int64_t, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6_2__pyx_mdef_6pandas_5_libs_4join_265asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6_2__pyx_mdef_6pandas_5_libs_4join_265asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults177), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults177, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults177, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_692__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_int32_t_uint64_t, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7_0__pyx_mdef_6pandas_5_libs_4join_267asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7_0__pyx_mdef_6pandas_5_libs_4join_267asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults178), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults178, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults178, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_694__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_int64_t_object, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7_1__pyx_mdef_6pandas_5_libs_4join_269asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7_1__pyx_mdef_6pandas_5_libs_4join_269asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults179), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults179, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults179, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_696__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_int64_t_int64_t, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7_2__pyx_mdef_6pandas_5_libs_4join_271asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7_2__pyx_mdef_6pandas_5_libs_4join_271asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults180), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults180, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults180, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_698__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_int64_t_uint64_t, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_8_0__pyx_mdef_6pandas_5_libs_4join_273asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_8_0__pyx_mdef_6pandas_5_libs_4join_273asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults181), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults181, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults181, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_700__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_float_object, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_8_1__pyx_mdef_6pandas_5_libs_4join_275asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_8_1__pyx_mdef_6pandas_5_libs_4join_275asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults182), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults182, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults182, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_702__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_float_int64_t, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_8_2__pyx_mdef_6pandas_5_libs_4join_277asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_8_2__pyx_mdef_6pandas_5_libs_4join_277asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults183), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults183, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults183, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_704__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_float_uint64_t, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_9_0__pyx_mdef_6pandas_5_libs_4join_279asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_9_0__pyx_mdef_6pandas_5_libs_4join_279asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults184), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults184, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults184, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_706__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_float64_t_object, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_9_1__pyx_mdef_6pandas_5_libs_4join_281asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_9_1__pyx_mdef_6pandas_5_libs_4join_281asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults185), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults185, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults185, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_708__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_float64_t_int64_t, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_9_2__pyx_mdef_6pandas_5_libs_4join_283asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_fuse_9_2__pyx_mdef_6pandas_5_libs_4join_283asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults186), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults186, __pyx_t_18)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults186, __pyx_t_18)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_710__defaults__);
    if (PyDict_SetItem(__pyx_t_16, __pyx_kp_s_float64_t_uint64_t, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_19 = PyDict_New(); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_21asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_19, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    #else
    __pyx_t_18 = __pyx_FusedFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_21asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_18);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_18, sizeof(__pyx_defaults126), 1)) __PYX_ERR(0, 801, __pyx_L1_error)
/* … */
    #if CYTHON_COMPILING_IN_LIMITED_API
    __Pyx_INCREF(__pyx_t_18);
    if (PyModule_AddObject(__pyx_m, __pyx_k_asof_join_nearest_on_X_by_Y, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    #else
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_asof_join_nearest_on_X_by_Y, __pyx_t_18) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
    #endif
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __pyx_codeobj__60 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__59, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_asof_join_nearest_on_X_by_Y, 801, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__60)) __PYX_ERR(0, 801, __pyx_L1_error)
 802:                                 asof_t[:] right_values,
 803:                                 by_t[:] left_by_values,
 804:                                 by_t[:] right_by_values,
+805:                                 bint allow_exact_matches=True,
    __pyx_t_16 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 805, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
/* … */
    __pyx_t_19 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 805, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __Pyx_CyFunction_Defaults(__pyx_defaults126, __pyx_t_18)->__pyx_arg__fused_sigindex = __pyx_t_19;
    __Pyx_GIVEREF(__pyx_t_19);
    __pyx_t_19 = 0;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_17);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_18, __pyx_pf_6pandas_5_libs_4join_652__defaults__);
    ((__pyx_FusedFunctionObject *) __pyx_t_18)->__signatures__ = __pyx_t_16;
    __Pyx_GIVEREF(__pyx_t_16);
 806:                                 tolerance=None):
 807: 
 808:     cdef:
 809:         Py_ssize_t left_size, right_size, i
 810:         ndarray[int64_t] left_indexer, right_indexer, bli, bri, fli, fri
 811:         asof_t bdiff, fdiff
 812: 
+813:     left_size = len(left_values)
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
+814:     right_size = len(right_values)
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
 815: 
+816:     left_indexer = np.empty(left_size, dtype=np.int64)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); 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_empty); 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 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __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, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __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, 816, __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, 816, __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, 816, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 816, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
+817:     right_indexer = np.empty(left_size, dtype=np.int64)
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 817, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
 818: 
 819:     # search both forward and backward
+820:     bli, bri = asof_join_backward_on_X_by_Y(
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_16 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_16 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
+821:         left_values,
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
+822:         right_values,
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
+823:         left_by_values,
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
+824:         right_by_values,
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
+825:         allow_exact_matches,
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
+826:         tolerance,
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 6+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 820, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_12)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_15(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_12), 2) < 0) __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 820, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
 827:     )
+828:     fli, fri = asof_join_forward_on_X_by_Y(
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 828, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_17 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 828, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
+829:         left_values,
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
+830:         right_values,
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
+831:         left_by_values,
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
+832:         right_by_values,
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
+833:         allow_exact_matches,
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
+834:         tolerance,
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_16 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_16 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[7] = {__pyx_t_14, __pyx_t_6, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_16, 6+__pyx_t_16);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 828, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_15 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_4 = __pyx_t_15(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_2), 2) < 0) __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_t_15 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_15 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 828, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
 835:     )
 836: 
+837:     for i in range(len(bri)):
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 837, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_1;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
 838:         # choose timestamp from right with smaller difference
+839:         if bri[i] != -1 and fri[i] != -1:
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 839, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
+840:             bdiff = left_values[bli[i]] - right_values[bri[i]]
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 840, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_25 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))));
+841:             fdiff = right_values[fri[i]] - left_values[fli[i]]
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_right_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_30 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_30 < 0) {
        __pyx_t_30 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_30 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_30 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_t_31 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_17 = -1;
      if (__pyx_t_31 < 0) {
        __pyx_t_31 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_31 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_31 >= __pyx_v_left_values.shape[0])) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 841, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_29 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_31 * __pyx_v_left_values.strides[0]) ))));
+842:             right_indexer[i] = bri[i] if bdiff <= fdiff else fri[i]
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_33 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_33 < 0) {
          __pyx_t_33 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_33 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_34 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_34 < 0) {
          __pyx_t_34 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_34 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 842, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_35 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_35 < 0) {
        __pyx_t_35 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_35 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 842, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
 843:         else:
+844:             right_indexer[i] = bri[i] if bri[i] != -1 else fri[i]
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_36 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_36 < 0) {
        __pyx_t_36 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_36 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_37 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_37 < 0) {
          __pyx_t_37 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_37 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_38 = __pyx_v_i;
        __pyx_t_17 = -1;
        if (__pyx_t_38 < 0) {
          __pyx_t_38 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_38 < 0)) __pyx_t_17 = 0;
        } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_17 = 0;
        if (unlikely(__pyx_t_17 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_17);
          __PYX_ERR(0, 844, __pyx_L1_error)
        }
        __pyx_t_32 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_39 = __pyx_v_i;
      __pyx_t_17 = -1;
      if (__pyx_t_39 < 0) {
        __pyx_t_39 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_39 < 0)) __pyx_t_17 = 0;
      } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
      if (unlikely(__pyx_t_17 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_17);
        __PYX_ERR(0, 844, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_32;
    }
    __pyx_L9:;
+845:         left_indexer[i] = bli[i]
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_40 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_40 < 0) {
      __pyx_t_40 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_40 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_40 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    __pyx_t_41 = __pyx_v_i;
    __pyx_t_17 = -1;
    if (__pyx_t_41 < 0) {
      __pyx_t_41 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_41 < 0)) __pyx_t_17 = 0;
    } else if (unlikely(__pyx_t_41 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_17 = 0;
    if (unlikely(__pyx_t_17 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_17);
      __PYX_ERR(0, 845, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_40, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
 846: 
+847:     return left_indexer, right_indexer
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
 848: 
 849: 
 850: # ----------------------------------------------------------------------
 851: # asof_join
 852: # ----------------------------------------------------------------------
 853: 
+854: def asof_join_backward(asof_t[:] left_values,
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_23asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_23asof_join_backward = {"asof_join_backward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pandas_5_libs_4join_23asof_join_backward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6pandas_5_libs_4join_23asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  PyObject *__pyx_v__fused_sigindex = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,&__pyx_n_s_fused_sigindex,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,&__pyx_n_s_fused_sigindex,0};
    #endif
    PyObject* values[5] = {0,0,0,0,0};
    __pyx_defaults187 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults187, __pyx_self);
    values[2] = __pyx_k__7;
    values[3] = __pyx_k__8;
    values[4] = __pyx_dynamic_args->__pyx_arg__fused_sigindex;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_signatures)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __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_args)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 1); __PYX_ERR(0, 854, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_kwargs);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_defaults);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fused_sigindex);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const 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_fused_cpdef") < 0)) __PYX_ERR(0, 854, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
    __pyx_v__fused_sigindex = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, __pyx_nargs); __PYX_ERR(0, 854, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_22asof_join_backward(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults, __pyx_v__fused_sigindex);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_22asof_join_backward(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults, PyObject *__pyx_v__fused_sigindex) {
  PyObject *__pyx_v_search_list = 0;
  PyObject *__pyx_v_sn = 0;
  PyObject *__pyx_v_sigindex_node = 0;
  PyObject *__pyx_v_dest_sig = NULL;
  PyTypeObject *__pyx_v_ndarray = 0;
  __Pyx_memviewslice __pyx_v_memslice;
  Py_ssize_t __pyx_v_itemsize;
  int __pyx_v_dtype_signed;
  char __pyx_v_kind;
  int __pyx_v____pyx_uint8_t_is_signed;
  int __pyx_v____pyx_uint16_t_is_signed;
  int __pyx_v____pyx_uint32_t_is_signed;
  int __pyx_v____pyx_uint64_t_is_signed;
  int __pyx_v____pyx_int8_t_is_signed;
  int __pyx_v____pyx_int16_t_is_signed;
  int __pyx_v____pyx_int32_t_is_signed;
  int __pyx_v____pyx_int64_t_is_signed;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_dtype = NULL;
  PyObject *__pyx_v_arg_base = NULL;
  PyObject *__pyx_v_sig = NULL;
  PyObject *__pyx_v_sig_series = NULL;
  PyObject *__pyx_v_sig_type = NULL;
  PyObject *__pyx_v_sigindex_matches = NULL;
  PyObject *__pyx_v_sigindex_candidates = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_v_found_matches = NULL;
  PyObject *__pyx_v_found_candidates = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  __pyx_v____pyx_uint8_t_is_signed = (!((((__pyx_t_5numpy_uint8_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint16_t_is_signed = (!((((__pyx_t_5numpy_uint16_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint32_t_is_signed = (!((((__pyx_t_5numpy_uint32_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
  __pyx_v____pyx_int8_t_is_signed = (!((((__pyx_t_5numpy_int8_t)-1L) > 0) != 0));
  __pyx_v____pyx_int16_t_is_signed = (!((((__pyx_t_5numpy_int16_t)-1L) > 0) != 0));
  __pyx_v____pyx_int32_t_is_signed = (!((((__pyx_t_5numpy_int32_t)-1L) > 0) != 0));
  __pyx_v____pyx_int64_t_is_signed = (!((((__pyx_t_5numpy_int64_t)-1L) > 0) != 0));
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 854, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 854, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 854, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 854, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_left_values, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (likely(__pyx_t_2)) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 854, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_left_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 854, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 854, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 854, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 854, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_dtype = __pyx_t_6;
        __pyx_t_6 = 0;
        goto __pyx_L12;
      }
      __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg); 
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 854, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_arg_base = __pyx_t_6;
        __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
        __pyx_t_2 = (__pyx_t_3 != 0);
        if (__pyx_t_2) {
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 854, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_v_dtype = __pyx_t_6;
          __pyx_t_6 = 0;
          goto __pyx_L13;
        }
        /*else*/ {
          __Pyx_INCREF(Py_None);
          __pyx_v_dtype = Py_None;
        }
        __pyx_L13:;
        goto __pyx_L12;
      }
      /*else*/ {
        __Pyx_INCREF(Py_None);
        __pyx_v_dtype = Py_None;
      }
      __pyx_L12:;
      __pyx_v_itemsize = -1L;
      __pyx_t_2 = (__pyx_v_dtype != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 854, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_itemsize = __pyx_t_5;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 854, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 854, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_kind = __pyx_t_7;
        __pyx_v_dtype_signed = (__pyx_v_kind == 'i');
        switch (__pyx_v_kind) {
          case 'i':
          case 'u':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 854, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L16_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 854, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L20_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 854, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L24_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 854, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L28_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 854, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L32_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 854, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L36_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 854, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L40_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 854, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L44_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'f':
          __pyx_t_2 = (((sizeof(float)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L48_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 854, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L48_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L51_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 854, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L51_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'c':
          break;
          case 'O':
          break;
          default: break;
        }
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L54_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L54_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L58_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L58_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L62_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L62_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L66_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L66_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L70_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L70_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L74_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L74_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L78_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L78_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L82_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L82_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L86_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(float))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L86_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_float(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L90_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L90_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v__fused_sigindex); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_5 = 0;
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
      __PYX_ERR(0, 854, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF(__pyx_t_6);
    __pyx_t_6 = __pyx_t_1;
    __pyx_t_1 = 0;
    while (1) {
      __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_9, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_10);
      if (unlikely(__pyx_t_11 == 0)) break;
      if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 854, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
      __pyx_t_1 = 0;
      if (!(likely(PyDict_CheckExact(__pyx_v__fused_sigindex))||((__pyx_v__fused_sigindex) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_v__fused_sigindex))), 0))) __PYX_ERR(0, 854, __pyx_L1_error)
      __pyx_t_1 = __pyx_v__fused_sigindex;
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_sigindex_node, ((PyObject*)__pyx_t_1));
      __pyx_t_1 = 0;
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 854, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_14 = NULL;
      __pyx_t_11 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
        __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
        if (likely(__pyx_t_14)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_14);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_13, function);
          __pyx_t_11 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_14, __pyx_kp_s__2};
        __pyx_t_12 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_11, 1+__pyx_t_11);
        __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 854, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 854, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_12 = NULL;
      __pyx_t_15 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
        __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
        if (likely(__pyx_t_12)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_12);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_13, function);
          __pyx_t_15 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_kp_s__3};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_15, 1+__pyx_t_15);
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __Pyx_XDECREF_SET(__pyx_v_sig_series, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_sig_series, 0, -1L, NULL, NULL, &__pyx_slice__4, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
        __pyx_t_13 = __pyx_t_1; __Pyx_INCREF(__pyx_t_13); __pyx_t_16 = 0;
        __pyx_t_17 = NULL;
      } else {
        __pyx_t_16 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 854, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_17 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      for (;;) {
        if (likely(!__pyx_t_17)) {
          if (likely(PyList_CheckExact(__pyx_t_13))) {
            if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_13)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_1); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          } else {
            if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_1); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          }
        } else {
          __pyx_t_1 = __pyx_t_17(__pyx_t_13);
          if (unlikely(!__pyx_t_1)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 854, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_XDECREF_SET(__pyx_v_sig_type, __pyx_t_1);
        __pyx_t_1 = 0;
        if (unlikely(__pyx_v_sigindex_node == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
          __PYX_ERR(0, 854, __pyx_L1_error)
        }
        __pyx_t_2 = (__Pyx_PyDict_ContainsTF(__pyx_v_sig_type, __pyx_v_sigindex_node, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
        __pyx_t_3 = (__pyx_t_2 != 0);
        if (__pyx_t_3) {
          __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          if (unlikely(__pyx_v_sigindex_node == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 854, __pyx_L1_error)
          }
          if (unlikely(PyDict_SetItem(__pyx_v_sigindex_node, __pyx_v_sig_type, __pyx_t_1) < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
          __Pyx_INCREF(__pyx_t_1);
          __Pyx_DECREF_SET(__pyx_v_sigindex_node, __pyx_t_1);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          goto __pyx_L98;
        }
        /*else*/ {
          if (unlikely(__pyx_v_sigindex_node == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 854, __pyx_L1_error)
          }
          __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_sigindex_node, __pyx_v_sig_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_1))), 0))) __PYX_ERR(0, 854, __pyx_L1_error)
          __Pyx_DECREF_SET(__pyx_v_sigindex_node, ((PyObject*)__pyx_t_1));
          __pyx_t_1 = 0;
        }
        __pyx_L98:;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      if (unlikely(__pyx_v_sigindex_node == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_13 = __Pyx_GetItemInt(__pyx_v_sig_series, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 854, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      if (unlikely(PyDict_SetItem(__pyx_v_sigindex_node, __pyx_t_13, __pyx_v_sig) < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_sigindex_matches = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v__fused_sigindex);
  __Pyx_GIVEREF(__pyx_v__fused_sigindex);
  PyList_SET_ITEM(__pyx_t_6, 0, __pyx_v__fused_sigindex);
  __pyx_v_sigindex_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __pyx_v_dest_sig; __Pyx_INCREF(__pyx_t_6); __pyx_t_9 = 0;
  for (;;) {
    if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_6)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_13 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_9); __Pyx_INCREF(__pyx_t_13); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
    #else
    __pyx_t_13 = PySequence_ITEM(__pyx_t_6, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_13);
    __pyx_t_13 = 0;
    __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_XDECREF_SET(__pyx_v_found_matches, ((PyObject*)__pyx_t_13));
    __pyx_t_13 = 0;
    __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_XDECREF_SET(__pyx_v_found_candidates, ((PyObject*)__pyx_t_13));
    __pyx_t_13 = 0;
    __pyx_t_3 = (__pyx_v_dst_type == Py_None);
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      __pyx_t_13 = __pyx_v_sigindex_matches; __Pyx_INCREF(__pyx_t_13); __pyx_t_5 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
        if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_1))), 0))) __PYX_ERR(0, 854, __pyx_L1_error)
        __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_1));
        __pyx_t_1 = 0;
        if (unlikely(__pyx_v_sn == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
          __PYX_ERR(0, 854, __pyx_L1_error)
        }
        __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_sn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_18 = __Pyx_PyList_Extend(__pyx_v_found_matches, __pyx_t_1); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 854, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_13 = __pyx_v_sigindex_candidates; __Pyx_INCREF(__pyx_t_13); __pyx_t_5 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
        if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_1))), 0))) __PYX_ERR(0, 854, __pyx_L1_error)
        __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_1));
        __pyx_t_1 = 0;
        if (unlikely(__pyx_v_sn == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
          __PYX_ERR(0, 854, __pyx_L1_error)
        }
        __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_sn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_18 = __Pyx_PyList_Extend(__pyx_v_found_candidates, __pyx_t_1); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 854, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      goto __pyx_L101;
    }
    /*else*/ {
      __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 854, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_INCREF(__pyx_v_sigindex_matches);
      __Pyx_GIVEREF(__pyx_v_sigindex_matches);
      PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_v_sigindex_matches);
      __Pyx_INCREF(__pyx_v_sigindex_candidates);
      __Pyx_GIVEREF(__pyx_v_sigindex_candidates);
      PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_v_sigindex_candidates);
      __pyx_t_1 = __pyx_t_13; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      for (;;) {
        if (__pyx_t_5 >= 2) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_13); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
        #else
        __pyx_t_13 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 854, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        #endif
        __Pyx_XDECREF_SET(__pyx_v_search_list, ((PyObject*)__pyx_t_13));
        __pyx_t_13 = 0;
        if (unlikely(__pyx_v_search_list == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
          __PYX_ERR(0, 854, __pyx_L1_error)
        }
        __pyx_t_13 = __pyx_v_search_list; __Pyx_INCREF(__pyx_t_13); __pyx_t_16 = 0;
        for (;;) {
          if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_13)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_12 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_12); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
          #else
          __pyx_t_12 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 854, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          #endif
          if (!(likely(PyDict_CheckExact(__pyx_t_12))||((__pyx_t_12) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_12))), 0))) __PYX_ERR(0, 854, __pyx_L1_error)
          __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_12));
          __pyx_t_12 = 0;
          if (unlikely(__pyx_v_sn == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
            __PYX_ERR(0, 854, __pyx_L1_error)
          }
          __pyx_t_2 = (__Pyx_PyDict_ContainsTF(__pyx_v_dst_type, __pyx_v_sn, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
          __pyx_t_3 = (__pyx_t_2 != 0);
          if (__pyx_t_3) {
            if (unlikely(__pyx_v_sn == Py_None)) {
              PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
              __PYX_ERR(0, 854, __pyx_L1_error)
            }
            __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_sn, __pyx_v_dst_type); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 854, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_found_matches, __pyx_t_12); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 854, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          }
        }
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L101:;
    __Pyx_INCREF(__pyx_v_found_matches);
    __Pyx_DECREF_SET(__pyx_v_sigindex_matches, __pyx_v_found_matches);
    __Pyx_INCREF(__pyx_v_found_candidates);
    __Pyx_DECREF_SET(__pyx_v_sigindex_candidates, __pyx_v_found_candidates);
    __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_found_matches) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L112_bool_binop_done;
    }
    __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_found_candidates) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L112_bool_binop_done:;
    __pyx_t_2 = ((!__pyx_t_3) != 0);
    if (__pyx_t_2) {
      goto __pyx_L100_break;
    }
  }
  __pyx_L100_break:;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_INCREF(__pyx_v_sigindex_matches);
  __pyx_v_candidates = __pyx_v_sigindex_matches;
  __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_3)) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 854, __pyx_L1_error)
  }
  __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 854, __pyx_L1_error)
  __pyx_t_3 = ((__pyx_t_9 > 1) != 0);
  if (unlikely(__pyx_t_3)) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 854, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 854, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_search_list);
  __Pyx_XDECREF(__pyx_v_sn);
  __Pyx_XDECREF(__pyx_v_sigindex_node);
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF((PyObject *)__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_dtype);
  __Pyx_XDECREF(__pyx_v_arg_base);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_sig_series);
  __Pyx_XDECREF(__pyx_v_sig_type);
  __Pyx_XDECREF(__pyx_v_sigindex_matches);
  __Pyx_XDECREF(__pyx_v_sigindex_candidates);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_found_matches);
  __Pyx_XDECREF(__pyx_v_found_candidates);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_732__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults198, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults198, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults198, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults198, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_0__pyx_pw_6pandas_5_libs_4join_287asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_287asof_join_backward = {"__pyx_fuse_0asof_join_backward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_287asof_join_backward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_287asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults198 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults198, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, 1); __PYX_ERR(0, 854, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_backward") < 0)) __PYX_ERR(0, 854, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 854, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 855, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 856, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 854, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_286asof_join_backward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_286asof_join_backward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint8_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0asof_join_backward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_734__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults199, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults199, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults199, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults199, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_1__pyx_pw_6pandas_5_libs_4join_289asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_289asof_join_backward = {"__pyx_fuse_1asof_join_backward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_289asof_join_backward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_289asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults199 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults199, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, 1); __PYX_ERR(0, 854, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_backward") < 0)) __PYX_ERR(0, 854, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 854, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 855, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 856, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 854, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_288asof_join_backward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_288asof_join_backward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint16_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1asof_join_backward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_736__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults200, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults200, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults200, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults200, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_2__pyx_pw_6pandas_5_libs_4join_291asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_291asof_join_backward = {"__pyx_fuse_2asof_join_backward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_291asof_join_backward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_291asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults200 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults200, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, 1); __PYX_ERR(0, 854, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_backward") < 0)) __PYX_ERR(0, 854, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 854, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 855, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 856, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 854, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_290asof_join_backward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_290asof_join_backward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint32_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2asof_join_backward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_738__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults201, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults201, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults201, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults201, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_3__pyx_pw_6pandas_5_libs_4join_293asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_293asof_join_backward = {"__pyx_fuse_3asof_join_backward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_293asof_join_backward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_293asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults201 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults201, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, 1); __PYX_ERR(0, 854, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_backward") < 0)) __PYX_ERR(0, 854, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 854, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 855, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 856, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 854, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_292asof_join_backward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_292asof_join_backward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint64_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3asof_join_backward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_740__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults202, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults202, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults202, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults202, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_4__pyx_pw_6pandas_5_libs_4join_295asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_295asof_join_backward = {"__pyx_fuse_4asof_join_backward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_295asof_join_backward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_295asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults202 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults202, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, 1); __PYX_ERR(0, 854, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_backward") < 0)) __PYX_ERR(0, 854, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 854, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 855, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 856, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 854, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_294asof_join_backward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_294asof_join_backward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int8_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4asof_join_backward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_742__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults203, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults203, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults203, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults203, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_5__pyx_pw_6pandas_5_libs_4join_297asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_297asof_join_backward = {"__pyx_fuse_5asof_join_backward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_297asof_join_backward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_297asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults203 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults203, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, 1); __PYX_ERR(0, 854, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_backward") < 0)) __PYX_ERR(0, 854, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 854, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 855, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 856, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 854, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_296asof_join_backward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_296asof_join_backward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int16_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5asof_join_backward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_744__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults204, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults204, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults204, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults204, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_6__pyx_pw_6pandas_5_libs_4join_299asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_299asof_join_backward = {"__pyx_fuse_6asof_join_backward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_299asof_join_backward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_299asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults204 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults204, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, 1); __PYX_ERR(0, 854, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_backward") < 0)) __PYX_ERR(0, 854, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 854, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 855, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 856, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 854, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_298asof_join_backward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_298asof_join_backward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int32_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6asof_join_backward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_746__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults205, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults205, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults205, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults205, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_7__pyx_pw_6pandas_5_libs_4join_301asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_301asof_join_backward = {"__pyx_fuse_7asof_join_backward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_301asof_join_backward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_301asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults205 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults205, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, 1); __PYX_ERR(0, 854, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_backward") < 0)) __PYX_ERR(0, 854, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 854, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 855, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 856, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 854, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_300asof_join_backward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_300asof_join_backward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int64_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7asof_join_backward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_748__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults206, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults206, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults206, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults206, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_8__pyx_pw_6pandas_5_libs_4join_303asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8__pyx_mdef_6pandas_5_libs_4join_303asof_join_backward = {"__pyx_fuse_8asof_join_backward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8__pyx_pw_6pandas_5_libs_4join_303asof_join_backward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_8__pyx_pw_6pandas_5_libs_4join_303asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults206 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults206, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, 1); __PYX_ERR(0, 854, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_backward") < 0)) __PYX_ERR(0, 854, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 854, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 855, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 856, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 854, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_302asof_join_backward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_302asof_join_backward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  float __pyx_v_tolerance_;
  float __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8asof_join_backward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_750__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults207, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults207, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults207, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults207, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_9__pyx_pw_6pandas_5_libs_4join_305asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9__pyx_mdef_6pandas_5_libs_4join_305asof_join_backward = {"__pyx_fuse_9asof_join_backward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9__pyx_pw_6pandas_5_libs_4join_305asof_join_backward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_9__pyx_pw_6pandas_5_libs_4join_305asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults207 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults207, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, 1); __PYX_ERR(0, 854, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_backward") < 0)) __PYX_ERR(0, 854, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 854, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 855, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 856, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 854, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_304asof_join_backward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_304asof_join_backward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_float64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_float64_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9asof_join_backward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
    __pyx_t_20 = PyTuple_New(2); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_20);
    __Pyx_GIVEREF(__pyx_t_19);
    PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_19);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_20, 1, Py_None);
    __pyx_t_19 = 0;
/* … */
  __pyx_tuple__61 = PyTuple_Pack(13, __pyx_n_s_left_values, __pyx_n_s_right_values, __pyx_n_s_allow_exact_matches, __pyx_n_s_tolerance, __pyx_n_s_left_pos, __pyx_n_s_right_pos, __pyx_n_s_left_size, __pyx_n_s_right_size, __pyx_n_s_left_indexer, __pyx_n_s_right_indexer, __pyx_n_s_has_tolerance, __pyx_n_s_tolerance_2, __pyx_n_s_diff); if (unlikely(!__pyx_tuple__61)) __PYX_ERR(0, 854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__61);
  __Pyx_GIVEREF(__pyx_tuple__61);
/* … */
    __pyx_t_19 = __Pyx_PyDict_NewPresized(10); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_22 = PyDict_New(); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_21 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_287asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_22, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    #else
    __pyx_t_21 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_287asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 854, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_21);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_21, sizeof(__pyx_defaults198), 1)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults198, __pyx_t_21)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults198, __pyx_t_21)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_21, __pyx_t_20);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_21, __pyx_pf_6pandas_5_libs_4join_732__defaults__);
    if (PyDict_SetItem(__pyx_t_19, __pyx_n_s_uint8_t, __pyx_t_21) < 0) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_22 = PyDict_New(); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_21 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_289asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_22, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    #else
    __pyx_t_21 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_289asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 854, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_21);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_21, sizeof(__pyx_defaults199), 1)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults199, __pyx_t_21)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults199, __pyx_t_21)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_21, __pyx_t_20);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_21, __pyx_pf_6pandas_5_libs_4join_734__defaults__);
    if (PyDict_SetItem(__pyx_t_19, __pyx_n_s_uint16_t, __pyx_t_21) < 0) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_22 = PyDict_New(); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_21 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_291asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_22, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    #else
    __pyx_t_21 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_291asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 854, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_21);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_21, sizeof(__pyx_defaults200), 1)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults200, __pyx_t_21)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults200, __pyx_t_21)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_21, __pyx_t_20);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_21, __pyx_pf_6pandas_5_libs_4join_736__defaults__);
    if (PyDict_SetItem(__pyx_t_19, __pyx_n_s_uint32_t, __pyx_t_21) < 0) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_22 = PyDict_New(); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_21 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_293asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_22, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    #else
    __pyx_t_21 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_293asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 854, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_21);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_21, sizeof(__pyx_defaults201), 1)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults201, __pyx_t_21)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults201, __pyx_t_21)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_21, __pyx_t_20);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_21, __pyx_pf_6pandas_5_libs_4join_738__defaults__);
    if (PyDict_SetItem(__pyx_t_19, __pyx_n_s_uint64_t, __pyx_t_21) < 0) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_22 = PyDict_New(); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_21 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_295asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_22, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    #else
    __pyx_t_21 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_295asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 854, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_21);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_21, sizeof(__pyx_defaults202), 1)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults202, __pyx_t_21)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults202, __pyx_t_21)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_21, __pyx_t_20);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_21, __pyx_pf_6pandas_5_libs_4join_740__defaults__);
    if (PyDict_SetItem(__pyx_t_19, __pyx_n_s_int8_t, __pyx_t_21) < 0) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_22 = PyDict_New(); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_21 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_297asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_22, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    #else
    __pyx_t_21 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_297asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 854, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_21);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_21, sizeof(__pyx_defaults203), 1)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults203, __pyx_t_21)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults203, __pyx_t_21)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_21, __pyx_t_20);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_21, __pyx_pf_6pandas_5_libs_4join_742__defaults__);
    if (PyDict_SetItem(__pyx_t_19, __pyx_n_s_int16_t, __pyx_t_21) < 0) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_22 = PyDict_New(); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_21 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_299asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_22, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    #else
    __pyx_t_21 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_299asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 854, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_21);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_21, sizeof(__pyx_defaults204), 1)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults204, __pyx_t_21)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults204, __pyx_t_21)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_21, __pyx_t_20);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_21, __pyx_pf_6pandas_5_libs_4join_744__defaults__);
    if (PyDict_SetItem(__pyx_t_19, __pyx_n_s_int32_t, __pyx_t_21) < 0) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_22 = PyDict_New(); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_21 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_301asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_22, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    #else
    __pyx_t_21 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_301asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 854, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_21);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_21, sizeof(__pyx_defaults205), 1)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults205, __pyx_t_21)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults205, __pyx_t_21)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_21, __pyx_t_20);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_21, __pyx_pf_6pandas_5_libs_4join_746__defaults__);
    if (PyDict_SetItem(__pyx_t_19, __pyx_n_s_int64_t, __pyx_t_21) < 0) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_22 = PyDict_New(); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_21 = __pyx_FusedFunction_NewEx(&__pyx_fuse_8__pyx_mdef_6pandas_5_libs_4join_303asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_22, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    #else
    __pyx_t_21 = __pyx_FusedFunction_NewEx(&__pyx_fuse_8__pyx_mdef_6pandas_5_libs_4join_303asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 854, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_21);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_21, sizeof(__pyx_defaults206), 1)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults206, __pyx_t_21)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults206, __pyx_t_21)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_21, __pyx_t_20);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_21, __pyx_pf_6pandas_5_libs_4join_748__defaults__);
    if (PyDict_SetItem(__pyx_t_19, __pyx_n_s_float, __pyx_t_21) < 0) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_22 = PyDict_New(); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_21 = __pyx_FusedFunction_NewEx(&__pyx_fuse_9__pyx_mdef_6pandas_5_libs_4join_305asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_22, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    #else
    __pyx_t_21 = __pyx_FusedFunction_NewEx(&__pyx_fuse_9__pyx_mdef_6pandas_5_libs_4join_305asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 854, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_21);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_21, sizeof(__pyx_defaults207), 1)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults207, __pyx_t_21)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults207, __pyx_t_21)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_21, __pyx_t_20);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_21, __pyx_pf_6pandas_5_libs_4join_750__defaults__);
    if (PyDict_SetItem(__pyx_t_19, __pyx_n_s_float64_t, __pyx_t_21) < 0) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_22 = PyDict_New(); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_21 = __pyx_FusedFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_23asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_22, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    #else
    __pyx_t_21 = __pyx_FusedFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_23asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 854, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_21);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_21, sizeof(__pyx_defaults187), 1)) __PYX_ERR(0, 854, __pyx_L1_error)
    __pyx_t_22 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __Pyx_CyFunction_Defaults(__pyx_defaults187, __pyx_t_21)->__pyx_arg__fused_sigindex = __pyx_t_22;
    __Pyx_GIVEREF(__pyx_t_22);
    __pyx_t_22 = 0;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_21, __pyx_t_20);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_21, __pyx_pf_6pandas_5_libs_4join_732__defaults__);
    ((__pyx_FusedFunctionObject *) __pyx_t_21)->__signatures__ = __pyx_t_19;
    __Pyx_GIVEREF(__pyx_t_19);
    #if CYTHON_COMPILING_IN_LIMITED_API
    __Pyx_INCREF(__pyx_t_21);
    if (PyModule_AddObject(__pyx_m, __pyx_k_asof_join_backward, __pyx_t_21) < 0) __PYX_ERR(0, 854, __pyx_L1_error)
    #else
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_asof_join_backward, __pyx_t_21) < 0) __PYX_ERR(0, 854, __pyx_L1_error)
    #endif
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
  __pyx_codeobj__62 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__61, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_asof_join_backward, 854, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__62)) __PYX_ERR(0, 854, __pyx_L1_error)
 855:                        asof_t[:] right_values,
+856:                        bint allow_exact_matches=True,
    __pyx_t_19 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 856, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
/* … */
    __pyx_t_19 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 856, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_k__7 = __pyx_t_19;
    __Pyx_GIVEREF(__pyx_t_19);
    __pyx_t_19 = 0;
    __Pyx_INCREF(Py_None);
    __pyx_k__8 = Py_None;
    __Pyx_GIVEREF(Py_None);
 857:                        tolerance=None):
 858: 
 859:     cdef:
 860:         Py_ssize_t left_pos, right_pos, left_size, right_size
 861:         ndarray[int64_t] left_indexer, right_indexer
+862:         bint has_tolerance = False
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
+863:         asof_t tolerance_ = 0
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0.0;
/* … */
  __pyx_v_tolerance_ = 0.0;
+864:         asof_t diff = 0
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0.0;
/* … */
  __pyx_v_diff = 0.0;
 865: 
 866:     # if we are using tolerance, set our objects
+867:     if tolerance is not None:
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
+868:         has_tolerance = True
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
+869:         tolerance_ = tolerance
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 869, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 869, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 869, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 869, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 869, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 869, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 869, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 869, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsFloat(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 869, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 869, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
 870: 
+871:     left_size = len(left_values)
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
+872:     right_size = len(right_values)
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
 873: 
+874:     left_indexer = np.empty(left_size, dtype=np.int64)
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 874, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 874, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 874, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 874, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 874, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 874, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 874, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 874, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 874, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 874, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 874, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 874, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 874, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 874, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 874, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 874, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 874, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 874, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 874, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 874, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
+875:     right_indexer = np.empty(left_size, dtype=np.int64)
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 875, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 875, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 875, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 875, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 875, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 875, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 875, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 875, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 875, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 875, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 875, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 875, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 875, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 875, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 875, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 875, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 875, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 875, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 875, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 875, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
 876: 
+877:     right_pos = 0
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
+878:     for left_pos in range(left_size):
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
/* … */
  __pyx_t_4 = __pyx_v_left_size;
  __pyx_t_15 = __pyx_t_4;
  for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
    __pyx_v_left_pos = __pyx_t_16;
 879:         # restart right_pos if it went negative in a previous iteration
+880:         if right_pos < 0:
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
+881:             right_pos = 0
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
 882: 
 883:         # find last position in right whose value is less than left's
+884:         if allow_exact_matches:
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
+885:             while (right_pos < right_size and
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
+886:                    right_values[right_pos] <= left_values[left_pos]):
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 886, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 886, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 886, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 886, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 886, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 886, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 886, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 886, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 886, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 886, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 886, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 886, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 886, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 886, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 886, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 886, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 886, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 886, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 886, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 886, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
+887:                 right_pos += 1
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
 888:         else:
+889:             while (right_pos < right_size and
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
+890:                    right_values[right_pos] < left_values[left_pos]):
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 890, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 890, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 890, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 890, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 890, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 890, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 890, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 890, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 890, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 890, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 890, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 890, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 890, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 890, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 890, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 890, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 890, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 890, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 890, __pyx_L1_error)
        }
        __pyx_t_20 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_20 < 0) {
          __pyx_t_20 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_20 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_20 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 890, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_20 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
+891:                 right_pos += 1
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
+892:         right_pos -= 1
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
 893: 
 894:         # save positions as the desired index
+895:         left_indexer[left_pos] = left_pos
    __pyx_t_21 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 895, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_21 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 895, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_21 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 895, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_21 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 895, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_21 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 895, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_21 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 895, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_21 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 895, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_21 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 895, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_21 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 895, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_21 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 895, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
+896:         right_indexer[left_pos] = right_pos
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 896, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_right_pos;
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 896, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_right_pos;
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 896, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_right_pos;
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 896, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_right_pos;
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 896, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_right_pos;
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 896, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_right_pos;
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 896, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_right_pos;
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 896, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_right_pos;
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 896, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_right_pos;
/* … */
    __pyx_t_22 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_22 < 0) {
      __pyx_t_22 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_22 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 896, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_right_pos;
 897: 
 898:         # if needed, verify that tolerance is met
+899:         if has_tolerance and right_pos != -1:
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
+900:             diff = left_values[left_pos] - right_values[right_pos]
      __pyx_t_23 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 900, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 900, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_24 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_23 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 900, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 900, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_24 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_23 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 900, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 900, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_24 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_23 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 900, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 900, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_24 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_23 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 900, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 900, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_24 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_23 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 900, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 900, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_24 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_23 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 900, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 900, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_24 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_23 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 900, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 900, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_24 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_23 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 900, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 900, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_24 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_23 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 900, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 900, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_24 * __pyx_v_right_values.strides[0]) ))));
+901:             if diff > tolerance_:
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
+902:                 right_indexer[left_pos] = -1
        __pyx_t_25 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_25 < 0) {
          __pyx_t_25 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_25 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_25 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 902, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_25 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_25 < 0) {
          __pyx_t_25 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_25 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_25 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 902, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_25 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_25 < 0) {
          __pyx_t_25 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_25 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_25 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 902, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_25 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_25 < 0) {
          __pyx_t_25 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_25 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_25 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 902, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_25 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_25 < 0) {
          __pyx_t_25 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_25 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_25 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 902, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_25 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_25 < 0) {
          __pyx_t_25 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_25 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_25 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 902, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_25 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_25 < 0) {
          __pyx_t_25 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_25 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_25 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 902, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_25 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_25 < 0) {
          __pyx_t_25 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_25 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_25 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 902, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_25 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_25 < 0) {
          __pyx_t_25 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_25 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_25 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 902, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_25 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_25 < 0) {
          __pyx_t_25 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_25 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_25 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 902, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
 903: 
+904:     return left_indexer, right_indexer
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 904, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 904, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 904, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 904, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 904, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 904, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 904, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 904, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 904, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 904, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
 905: 
 906: 
+907: def asof_join_forward(asof_t[:] left_values,
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_25asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_25asof_join_forward = {"asof_join_forward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pandas_5_libs_4join_25asof_join_forward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6pandas_5_libs_4join_25asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  PyObject *__pyx_v__fused_sigindex = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,&__pyx_n_s_fused_sigindex,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,&__pyx_n_s_fused_sigindex,0};
    #endif
    PyObject* values[5] = {0,0,0,0,0};
    __pyx_defaults208 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults208, __pyx_self);
    values[2] = __pyx_k__9;
    values[3] = __pyx_k__10;
    values[4] = __pyx_dynamic_args->__pyx_arg__fused_sigindex;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_signatures)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __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_args)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 1); __PYX_ERR(0, 907, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_kwargs);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_defaults);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fused_sigindex);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const 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_fused_cpdef") < 0)) __PYX_ERR(0, 907, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
    __pyx_v__fused_sigindex = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, __pyx_nargs); __PYX_ERR(0, 907, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_24asof_join_forward(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults, __pyx_v__fused_sigindex);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_24asof_join_forward(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults, PyObject *__pyx_v__fused_sigindex) {
  PyObject *__pyx_v_search_list = 0;
  PyObject *__pyx_v_sn = 0;
  PyObject *__pyx_v_sigindex_node = 0;
  PyObject *__pyx_v_dest_sig = NULL;
  PyTypeObject *__pyx_v_ndarray = 0;
  __Pyx_memviewslice __pyx_v_memslice;
  Py_ssize_t __pyx_v_itemsize;
  int __pyx_v_dtype_signed;
  char __pyx_v_kind;
  int __pyx_v____pyx_uint8_t_is_signed;
  int __pyx_v____pyx_uint16_t_is_signed;
  int __pyx_v____pyx_uint32_t_is_signed;
  int __pyx_v____pyx_uint64_t_is_signed;
  int __pyx_v____pyx_int8_t_is_signed;
  int __pyx_v____pyx_int16_t_is_signed;
  int __pyx_v____pyx_int32_t_is_signed;
  int __pyx_v____pyx_int64_t_is_signed;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_dtype = NULL;
  PyObject *__pyx_v_arg_base = NULL;
  PyObject *__pyx_v_sig = NULL;
  PyObject *__pyx_v_sig_series = NULL;
  PyObject *__pyx_v_sig_type = NULL;
  PyObject *__pyx_v_sigindex_matches = NULL;
  PyObject *__pyx_v_sigindex_candidates = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_v_found_matches = NULL;
  PyObject *__pyx_v_found_candidates = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  __pyx_v____pyx_uint8_t_is_signed = (!((((__pyx_t_5numpy_uint8_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint16_t_is_signed = (!((((__pyx_t_5numpy_uint16_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint32_t_is_signed = (!((((__pyx_t_5numpy_uint32_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
  __pyx_v____pyx_int8_t_is_signed = (!((((__pyx_t_5numpy_int8_t)-1L) > 0) != 0));
  __pyx_v____pyx_int16_t_is_signed = (!((((__pyx_t_5numpy_int16_t)-1L) > 0) != 0));
  __pyx_v____pyx_int32_t_is_signed = (!((((__pyx_t_5numpy_int32_t)-1L) > 0) != 0));
  __pyx_v____pyx_int64_t_is_signed = (!((((__pyx_t_5numpy_int64_t)-1L) > 0) != 0));
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 907, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 907, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 907, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 907, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_left_values, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (likely(__pyx_t_2)) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 907, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_left_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 907, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 907, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 907, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 907, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_dtype = __pyx_t_6;
        __pyx_t_6 = 0;
        goto __pyx_L12;
      }
      __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg); 
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 907, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_arg_base = __pyx_t_6;
        __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
        __pyx_t_2 = (__pyx_t_3 != 0);
        if (__pyx_t_2) {
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 907, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_v_dtype = __pyx_t_6;
          __pyx_t_6 = 0;
          goto __pyx_L13;
        }
        /*else*/ {
          __Pyx_INCREF(Py_None);
          __pyx_v_dtype = Py_None;
        }
        __pyx_L13:;
        goto __pyx_L12;
      }
      /*else*/ {
        __Pyx_INCREF(Py_None);
        __pyx_v_dtype = Py_None;
      }
      __pyx_L12:;
      __pyx_v_itemsize = -1L;
      __pyx_t_2 = (__pyx_v_dtype != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 907, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_itemsize = __pyx_t_5;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 907, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 907, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_kind = __pyx_t_7;
        __pyx_v_dtype_signed = (__pyx_v_kind == 'i');
        switch (__pyx_v_kind) {
          case 'i':
          case 'u':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 907, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L16_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 907, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L20_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 907, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L24_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 907, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L28_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 907, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L32_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 907, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L36_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 907, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L40_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 907, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L44_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'f':
          __pyx_t_2 = (((sizeof(float)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L48_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 907, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L48_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L51_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 907, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L51_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'c':
          break;
          case 'O':
          break;
          default: break;
        }
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L54_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L54_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L58_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L58_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L62_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L62_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L66_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L66_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L70_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L70_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L74_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L74_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L78_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L78_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L82_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L82_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L86_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(float))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L86_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_float(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L90_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L90_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v__fused_sigindex); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_5 = 0;
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
      __PYX_ERR(0, 907, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF(__pyx_t_6);
    __pyx_t_6 = __pyx_t_1;
    __pyx_t_1 = 0;
    while (1) {
      __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_9, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_10);
      if (unlikely(__pyx_t_11 == 0)) break;
      if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 907, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
      __pyx_t_1 = 0;
      if (!(likely(PyDict_CheckExact(__pyx_v__fused_sigindex))||((__pyx_v__fused_sigindex) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_v__fused_sigindex))), 0))) __PYX_ERR(0, 907, __pyx_L1_error)
      __pyx_t_1 = __pyx_v__fused_sigindex;
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_sigindex_node, ((PyObject*)__pyx_t_1));
      __pyx_t_1 = 0;
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 907, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_14 = NULL;
      __pyx_t_11 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
        __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
        if (likely(__pyx_t_14)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_14);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_13, function);
          __pyx_t_11 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_14, __pyx_kp_s__2};
        __pyx_t_12 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_11, 1+__pyx_t_11);
        __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 907, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 907, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_12 = NULL;
      __pyx_t_15 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
        __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
        if (likely(__pyx_t_12)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_12);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_13, function);
          __pyx_t_15 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_kp_s__3};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_15, 1+__pyx_t_15);
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __Pyx_XDECREF_SET(__pyx_v_sig_series, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_sig_series, 0, -1L, NULL, NULL, &__pyx_slice__4, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
        __pyx_t_13 = __pyx_t_1; __Pyx_INCREF(__pyx_t_13); __pyx_t_16 = 0;
        __pyx_t_17 = NULL;
      } else {
        __pyx_t_16 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 907, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_17 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 907, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      for (;;) {
        if (likely(!__pyx_t_17)) {
          if (likely(PyList_CheckExact(__pyx_t_13))) {
            if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_13)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_1); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          } else {
            if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_1); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          }
        } else {
          __pyx_t_1 = __pyx_t_17(__pyx_t_13);
          if (unlikely(!__pyx_t_1)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 907, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_XDECREF_SET(__pyx_v_sig_type, __pyx_t_1);
        __pyx_t_1 = 0;
        if (unlikely(__pyx_v_sigindex_node == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
          __PYX_ERR(0, 907, __pyx_L1_error)
        }
        __pyx_t_2 = (__Pyx_PyDict_ContainsTF(__pyx_v_sig_type, __pyx_v_sigindex_node, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
        __pyx_t_3 = (__pyx_t_2 != 0);
        if (__pyx_t_3) {
          __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          if (unlikely(__pyx_v_sigindex_node == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 907, __pyx_L1_error)
          }
          if (unlikely(PyDict_SetItem(__pyx_v_sigindex_node, __pyx_v_sig_type, __pyx_t_1) < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
          __Pyx_INCREF(__pyx_t_1);
          __Pyx_DECREF_SET(__pyx_v_sigindex_node, __pyx_t_1);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          goto __pyx_L98;
        }
        /*else*/ {
          if (unlikely(__pyx_v_sigindex_node == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 907, __pyx_L1_error)
          }
          __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_sigindex_node, __pyx_v_sig_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_1))), 0))) __PYX_ERR(0, 907, __pyx_L1_error)
          __Pyx_DECREF_SET(__pyx_v_sigindex_node, ((PyObject*)__pyx_t_1));
          __pyx_t_1 = 0;
        }
        __pyx_L98:;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      if (unlikely(__pyx_v_sigindex_node == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(0, 907, __pyx_L1_error)
      }
      __pyx_t_13 = __Pyx_GetItemInt(__pyx_v_sig_series, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 907, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      if (unlikely(PyDict_SetItem(__pyx_v_sigindex_node, __pyx_t_13, __pyx_v_sig) < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_sigindex_matches = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v__fused_sigindex);
  __Pyx_GIVEREF(__pyx_v__fused_sigindex);
  PyList_SET_ITEM(__pyx_t_6, 0, __pyx_v__fused_sigindex);
  __pyx_v_sigindex_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __pyx_v_dest_sig; __Pyx_INCREF(__pyx_t_6); __pyx_t_9 = 0;
  for (;;) {
    if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_6)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_13 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_9); __Pyx_INCREF(__pyx_t_13); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
    #else
    __pyx_t_13 = PySequence_ITEM(__pyx_t_6, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_13);
    __pyx_t_13 = 0;
    __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_XDECREF_SET(__pyx_v_found_matches, ((PyObject*)__pyx_t_13));
    __pyx_t_13 = 0;
    __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_XDECREF_SET(__pyx_v_found_candidates, ((PyObject*)__pyx_t_13));
    __pyx_t_13 = 0;
    __pyx_t_3 = (__pyx_v_dst_type == Py_None);
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      __pyx_t_13 = __pyx_v_sigindex_matches; __Pyx_INCREF(__pyx_t_13); __pyx_t_5 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
        if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_1))), 0))) __PYX_ERR(0, 907, __pyx_L1_error)
        __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_1));
        __pyx_t_1 = 0;
        if (unlikely(__pyx_v_sn == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
          __PYX_ERR(0, 907, __pyx_L1_error)
        }
        __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_sn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_18 = __Pyx_PyList_Extend(__pyx_v_found_matches, __pyx_t_1); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 907, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_13 = __pyx_v_sigindex_candidates; __Pyx_INCREF(__pyx_t_13); __pyx_t_5 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
        if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_1))), 0))) __PYX_ERR(0, 907, __pyx_L1_error)
        __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_1));
        __pyx_t_1 = 0;
        if (unlikely(__pyx_v_sn == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
          __PYX_ERR(0, 907, __pyx_L1_error)
        }
        __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_sn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_18 = __Pyx_PyList_Extend(__pyx_v_found_candidates, __pyx_t_1); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 907, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      goto __pyx_L101;
    }
    /*else*/ {
      __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 907, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_INCREF(__pyx_v_sigindex_matches);
      __Pyx_GIVEREF(__pyx_v_sigindex_matches);
      PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_v_sigindex_matches);
      __Pyx_INCREF(__pyx_v_sigindex_candidates);
      __Pyx_GIVEREF(__pyx_v_sigindex_candidates);
      PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_v_sigindex_candidates);
      __pyx_t_1 = __pyx_t_13; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      for (;;) {
        if (__pyx_t_5 >= 2) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_13); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
        #else
        __pyx_t_13 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 907, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        #endif
        __Pyx_XDECREF_SET(__pyx_v_search_list, ((PyObject*)__pyx_t_13));
        __pyx_t_13 = 0;
        if (unlikely(__pyx_v_search_list == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
          __PYX_ERR(0, 907, __pyx_L1_error)
        }
        __pyx_t_13 = __pyx_v_search_list; __Pyx_INCREF(__pyx_t_13); __pyx_t_16 = 0;
        for (;;) {
          if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_13)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_12 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_12); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
          #else
          __pyx_t_12 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 907, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          #endif
          if (!(likely(PyDict_CheckExact(__pyx_t_12))||((__pyx_t_12) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_12))), 0))) __PYX_ERR(0, 907, __pyx_L1_error)
          __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_12));
          __pyx_t_12 = 0;
          if (unlikely(__pyx_v_sn == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
            __PYX_ERR(0, 907, __pyx_L1_error)
          }
          __pyx_t_2 = (__Pyx_PyDict_ContainsTF(__pyx_v_dst_type, __pyx_v_sn, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
          __pyx_t_3 = (__pyx_t_2 != 0);
          if (__pyx_t_3) {
            if (unlikely(__pyx_v_sn == Py_None)) {
              PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
              __PYX_ERR(0, 907, __pyx_L1_error)
            }
            __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_sn, __pyx_v_dst_type); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 907, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_found_matches, __pyx_t_12); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 907, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          }
        }
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L101:;
    __Pyx_INCREF(__pyx_v_found_matches);
    __Pyx_DECREF_SET(__pyx_v_sigindex_matches, __pyx_v_found_matches);
    __Pyx_INCREF(__pyx_v_found_candidates);
    __Pyx_DECREF_SET(__pyx_v_sigindex_candidates, __pyx_v_found_candidates);
    __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_found_matches) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L112_bool_binop_done;
    }
    __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_found_candidates) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L112_bool_binop_done:;
    __pyx_t_2 = ((!__pyx_t_3) != 0);
    if (__pyx_t_2) {
      goto __pyx_L100_break;
    }
  }
  __pyx_L100_break:;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_INCREF(__pyx_v_sigindex_matches);
  __pyx_v_candidates = __pyx_v_sigindex_matches;
  __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_3)) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 907, __pyx_L1_error)
  }
  __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 907, __pyx_L1_error)
  __pyx_t_3 = ((__pyx_t_9 > 1) != 0);
  if (unlikely(__pyx_t_3)) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 907, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 907, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_search_list);
  __Pyx_XDECREF(__pyx_v_sn);
  __Pyx_XDECREF(__pyx_v_sigindex_node);
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF((PyObject *)__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_dtype);
  __Pyx_XDECREF(__pyx_v_arg_base);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_sig_series);
  __Pyx_XDECREF(__pyx_v_sig_type);
  __Pyx_XDECREF(__pyx_v_sigindex_matches);
  __Pyx_XDECREF(__pyx_v_sigindex_candidates);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_found_matches);
  __Pyx_XDECREF(__pyx_v_found_candidates);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_772__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults219, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults219, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults219, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults219, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_0__pyx_pw_6pandas_5_libs_4join_309asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_309asof_join_forward = {"__pyx_fuse_0asof_join_forward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_309asof_join_forward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_309asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults219 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults219, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, 1); __PYX_ERR(0, 907, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward") < 0)) __PYX_ERR(0, 907, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 907, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 908, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 909, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 907, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_308asof_join_forward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_308asof_join_forward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint8_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0asof_join_forward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_774__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults220, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults220, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults220, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults220, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_1__pyx_pw_6pandas_5_libs_4join_311asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_311asof_join_forward = {"__pyx_fuse_1asof_join_forward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_311asof_join_forward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_311asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults220 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults220, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, 1); __PYX_ERR(0, 907, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward") < 0)) __PYX_ERR(0, 907, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 907, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 908, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 909, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 907, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_310asof_join_forward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_310asof_join_forward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint16_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1asof_join_forward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_776__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults221, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults221, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults221, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults221, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_2__pyx_pw_6pandas_5_libs_4join_313asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_313asof_join_forward = {"__pyx_fuse_2asof_join_forward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_313asof_join_forward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_313asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults221 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults221, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, 1); __PYX_ERR(0, 907, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward") < 0)) __PYX_ERR(0, 907, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 907, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 908, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 909, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 907, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_312asof_join_forward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_312asof_join_forward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint32_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2asof_join_forward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_778__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults222, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults222, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults222, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults222, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_3__pyx_pw_6pandas_5_libs_4join_315asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_315asof_join_forward = {"__pyx_fuse_3asof_join_forward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_315asof_join_forward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_315asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults222 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults222, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, 1); __PYX_ERR(0, 907, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward") < 0)) __PYX_ERR(0, 907, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 907, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 908, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 909, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 907, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_314asof_join_forward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_314asof_join_forward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint64_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3asof_join_forward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_780__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults223, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults223, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults223, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults223, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_4__pyx_pw_6pandas_5_libs_4join_317asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_317asof_join_forward = {"__pyx_fuse_4asof_join_forward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_317asof_join_forward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_317asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults223 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults223, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, 1); __PYX_ERR(0, 907, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward") < 0)) __PYX_ERR(0, 907, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 907, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 908, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 909, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 907, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_316asof_join_forward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_316asof_join_forward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int8_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4asof_join_forward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_782__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults224, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults224, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults224, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults224, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_5__pyx_pw_6pandas_5_libs_4join_319asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_319asof_join_forward = {"__pyx_fuse_5asof_join_forward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_319asof_join_forward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_319asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults224 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults224, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, 1); __PYX_ERR(0, 907, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward") < 0)) __PYX_ERR(0, 907, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 907, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 908, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 909, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 907, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_318asof_join_forward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_318asof_join_forward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int16_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5asof_join_forward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_784__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults225, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults225, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults225, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults225, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_6__pyx_pw_6pandas_5_libs_4join_321asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_321asof_join_forward = {"__pyx_fuse_6asof_join_forward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_321asof_join_forward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_321asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults225 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults225, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, 1); __PYX_ERR(0, 907, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward") < 0)) __PYX_ERR(0, 907, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 907, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 908, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 909, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 907, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_320asof_join_forward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_320asof_join_forward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int32_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6asof_join_forward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_786__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults226, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults226, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults226, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults226, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_7__pyx_pw_6pandas_5_libs_4join_323asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_323asof_join_forward = {"__pyx_fuse_7asof_join_forward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_323asof_join_forward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_323asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults226 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults226, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, 1); __PYX_ERR(0, 907, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward") < 0)) __PYX_ERR(0, 907, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 907, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 908, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 909, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 907, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_322asof_join_forward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_322asof_join_forward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int64_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7asof_join_forward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_788__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults227, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults227, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults227, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults227, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_8__pyx_pw_6pandas_5_libs_4join_325asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8__pyx_mdef_6pandas_5_libs_4join_325asof_join_forward = {"__pyx_fuse_8asof_join_forward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8__pyx_pw_6pandas_5_libs_4join_325asof_join_forward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_8__pyx_pw_6pandas_5_libs_4join_325asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults227 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults227, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, 1); __PYX_ERR(0, 907, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward") < 0)) __PYX_ERR(0, 907, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 907, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 908, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 909, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 907, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_324asof_join_forward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_324asof_join_forward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  float __pyx_v_tolerance_;
  float __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8asof_join_forward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_790__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults228, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults228, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults228, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults228, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_9__pyx_pw_6pandas_5_libs_4join_327asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9__pyx_mdef_6pandas_5_libs_4join_327asof_join_forward = {"__pyx_fuse_9asof_join_forward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9__pyx_pw_6pandas_5_libs_4join_327asof_join_forward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_9__pyx_pw_6pandas_5_libs_4join_327asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults228 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults228, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, 1); __PYX_ERR(0, 907, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_forward") < 0)) __PYX_ERR(0, 907, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 907, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 908, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 909, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 907, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_326asof_join_forward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_326asof_join_forward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_float64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_float64_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9asof_join_forward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __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_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
    __pyx_t_23 = PyTuple_New(2); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    __Pyx_GIVEREF(__pyx_t_22);
    PyTuple_SET_ITEM(__pyx_t_23, 0, __pyx_t_22);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_23, 1, Py_None);
    __pyx_t_22 = 0;
/* … */
  __pyx_tuple__63 = PyTuple_Pack(13, __pyx_n_s_left_values, __pyx_n_s_right_values, __pyx_n_s_allow_exact_matches, __pyx_n_s_tolerance, __pyx_n_s_left_pos, __pyx_n_s_right_pos, __pyx_n_s_left_size, __pyx_n_s_right_size, __pyx_n_s_left_indexer, __pyx_n_s_right_indexer, __pyx_n_s_has_tolerance, __pyx_n_s_tolerance_2, __pyx_n_s_diff); if (unlikely(!__pyx_tuple__63)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__63);
  __Pyx_GIVEREF(__pyx_tuple__63);
/* … */
    __pyx_t_22 = __Pyx_PyDict_NewPresized(10); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_25 = PyDict_New(); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_25);
    __pyx_t_24 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_309asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_25, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
    #else
    __pyx_t_24 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_309asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 907, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_24);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_24, sizeof(__pyx_defaults219), 1)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults219, __pyx_t_24)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults219, __pyx_t_24)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_24, __pyx_t_23);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_24, __pyx_pf_6pandas_5_libs_4join_772__defaults__);
    if (PyDict_SetItem(__pyx_t_22, __pyx_n_s_uint8_t, __pyx_t_24) < 0) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_25 = PyDict_New(); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_25);
    __pyx_t_24 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_311asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_25, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
    #else
    __pyx_t_24 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_311asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 907, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_24);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_24, sizeof(__pyx_defaults220), 1)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults220, __pyx_t_24)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults220, __pyx_t_24)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_24, __pyx_t_23);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_24, __pyx_pf_6pandas_5_libs_4join_774__defaults__);
    if (PyDict_SetItem(__pyx_t_22, __pyx_n_s_uint16_t, __pyx_t_24) < 0) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_25 = PyDict_New(); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_25);
    __pyx_t_24 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_313asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_25, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
    #else
    __pyx_t_24 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_313asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 907, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_24);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_24, sizeof(__pyx_defaults221), 1)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults221, __pyx_t_24)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults221, __pyx_t_24)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_24, __pyx_t_23);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_24, __pyx_pf_6pandas_5_libs_4join_776__defaults__);
    if (PyDict_SetItem(__pyx_t_22, __pyx_n_s_uint32_t, __pyx_t_24) < 0) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_25 = PyDict_New(); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_25);
    __pyx_t_24 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_315asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_25, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
    #else
    __pyx_t_24 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_315asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 907, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_24);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_24, sizeof(__pyx_defaults222), 1)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults222, __pyx_t_24)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults222, __pyx_t_24)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_24, __pyx_t_23);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_24, __pyx_pf_6pandas_5_libs_4join_778__defaults__);
    if (PyDict_SetItem(__pyx_t_22, __pyx_n_s_uint64_t, __pyx_t_24) < 0) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_25 = PyDict_New(); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_25);
    __pyx_t_24 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_317asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_25, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
    #else
    __pyx_t_24 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_317asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 907, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_24);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_24, sizeof(__pyx_defaults223), 1)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults223, __pyx_t_24)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults223, __pyx_t_24)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_24, __pyx_t_23);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_24, __pyx_pf_6pandas_5_libs_4join_780__defaults__);
    if (PyDict_SetItem(__pyx_t_22, __pyx_n_s_int8_t, __pyx_t_24) < 0) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_25 = PyDict_New(); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_25);
    __pyx_t_24 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_319asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_25, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
    #else
    __pyx_t_24 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_319asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 907, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_24);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_24, sizeof(__pyx_defaults224), 1)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults224, __pyx_t_24)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults224, __pyx_t_24)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_24, __pyx_t_23);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_24, __pyx_pf_6pandas_5_libs_4join_782__defaults__);
    if (PyDict_SetItem(__pyx_t_22, __pyx_n_s_int16_t, __pyx_t_24) < 0) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_25 = PyDict_New(); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_25);
    __pyx_t_24 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_321asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_25, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
    #else
    __pyx_t_24 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_321asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 907, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_24);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_24, sizeof(__pyx_defaults225), 1)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults225, __pyx_t_24)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults225, __pyx_t_24)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_24, __pyx_t_23);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_24, __pyx_pf_6pandas_5_libs_4join_784__defaults__);
    if (PyDict_SetItem(__pyx_t_22, __pyx_n_s_int32_t, __pyx_t_24) < 0) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_25 = PyDict_New(); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_25);
    __pyx_t_24 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_323asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_25, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
    #else
    __pyx_t_24 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_323asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 907, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_24);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_24, sizeof(__pyx_defaults226), 1)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults226, __pyx_t_24)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults226, __pyx_t_24)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_24, __pyx_t_23);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_24, __pyx_pf_6pandas_5_libs_4join_786__defaults__);
    if (PyDict_SetItem(__pyx_t_22, __pyx_n_s_int64_t, __pyx_t_24) < 0) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_25 = PyDict_New(); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_25);
    __pyx_t_24 = __pyx_FusedFunction_NewEx(&__pyx_fuse_8__pyx_mdef_6pandas_5_libs_4join_325asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_25, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
    #else
    __pyx_t_24 = __pyx_FusedFunction_NewEx(&__pyx_fuse_8__pyx_mdef_6pandas_5_libs_4join_325asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 907, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_24);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_24, sizeof(__pyx_defaults227), 1)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults227, __pyx_t_24)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults227, __pyx_t_24)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_24, __pyx_t_23);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_24, __pyx_pf_6pandas_5_libs_4join_788__defaults__);
    if (PyDict_SetItem(__pyx_t_22, __pyx_n_s_float, __pyx_t_24) < 0) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_25 = PyDict_New(); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_25);
    __pyx_t_24 = __pyx_FusedFunction_NewEx(&__pyx_fuse_9__pyx_mdef_6pandas_5_libs_4join_327asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_25, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
    #else
    __pyx_t_24 = __pyx_FusedFunction_NewEx(&__pyx_fuse_9__pyx_mdef_6pandas_5_libs_4join_327asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 907, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_24);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_24, sizeof(__pyx_defaults228), 1)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults228, __pyx_t_24)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults228, __pyx_t_24)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_24, __pyx_t_23);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_24, __pyx_pf_6pandas_5_libs_4join_790__defaults__);
    if (PyDict_SetItem(__pyx_t_22, __pyx_n_s_float64_t, __pyx_t_24) < 0) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_25 = PyDict_New(); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_25);
    __pyx_t_24 = __pyx_FusedFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_25asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_25, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
    #else
    __pyx_t_24 = __pyx_FusedFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_25asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 907, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_24);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_24, sizeof(__pyx_defaults208), 1)) __PYX_ERR(0, 907, __pyx_L1_error)
    __pyx_t_25 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_25);
    __Pyx_CyFunction_Defaults(__pyx_defaults208, __pyx_t_24)->__pyx_arg__fused_sigindex = __pyx_t_25;
    __Pyx_GIVEREF(__pyx_t_25);
    __pyx_t_25 = 0;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_24, __pyx_t_23);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_24, __pyx_pf_6pandas_5_libs_4join_772__defaults__);
    ((__pyx_FusedFunctionObject *) __pyx_t_24)->__signatures__ = __pyx_t_22;
    __Pyx_GIVEREF(__pyx_t_22);
    #if CYTHON_COMPILING_IN_LIMITED_API
    __Pyx_INCREF(__pyx_t_24);
    if (PyModule_AddObject(__pyx_m, __pyx_k_asof_join_forward, __pyx_t_24) < 0) __PYX_ERR(0, 907, __pyx_L1_error)
    #else
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_asof_join_forward, __pyx_t_24) < 0) __PYX_ERR(0, 907, __pyx_L1_error)
    #endif
    __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
  __pyx_codeobj__64 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__63, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_asof_join_forward, 907, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__64)) __PYX_ERR(0, 907, __pyx_L1_error)
 908:                       asof_t[:] right_values,
+909:                       bint allow_exact_matches=True,
    __pyx_t_22 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 909, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
/* … */
    __pyx_t_22 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 909, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_k__9 = __pyx_t_22;
    __Pyx_GIVEREF(__pyx_t_22);
    __pyx_t_22 = 0;
    __Pyx_INCREF(Py_None);
    __pyx_k__10 = Py_None;
    __Pyx_GIVEREF(Py_None);
 910:                       tolerance=None):
 911: 
 912:     cdef:
 913:         Py_ssize_t left_pos, right_pos, left_size, right_size
 914:         ndarray[int64_t] left_indexer, right_indexer
+915:         bint has_tolerance = False
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
+916:         asof_t tolerance_ = 0
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0.0;
/* … */
  __pyx_v_tolerance_ = 0.0;
+917:         asof_t diff = 0
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0.0;
/* … */
  __pyx_v_diff = 0.0;
 918: 
 919:     # if we are using tolerance, set our objects
+920:     if tolerance is not None:
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
+921:         has_tolerance = True
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
+922:         tolerance_ = tolerance
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 922, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 922, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 922, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 922, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 922, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 922, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 922, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 922, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsFloat(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 922, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 922, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
 923: 
+924:     left_size = len(left_values)
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
+925:     right_size = len(right_values)
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
 926: 
+927:     left_indexer = np.empty(left_size, dtype=np.int64)
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 927, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 927, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 927, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 927, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 927, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 927, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 927, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 927, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 927, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 927, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 927, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 927, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 927, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 927, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 927, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 927, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 927, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 927, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_int64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 927, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 927, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
+928:     right_indexer = np.empty(left_size, dtype=np.int64)
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 928, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 928, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 928, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 928, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 928, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 928, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 928, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 928, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 928, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 928, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 928, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 928, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 928, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 928, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 928, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 928, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 928, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 928, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 928, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 928, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
 929: 
+930:     right_pos = right_size - 1
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
+931:     for left_pos in range(left_size - 1, -1, -1):
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
/* … */
  for (__pyx_t_4 = (__pyx_v_left_size - 1); __pyx_t_4 > -1L; __pyx_t_4-=1) {
    __pyx_v_left_pos = __pyx_t_4;
 932:         # restart right_pos if it went over in a previous iteration
+933:         if right_pos == right_size:
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
+934:             right_pos = right_size - 1
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
 935: 
 936:         # find first position in right whose value is greater than left's
+937:         if allow_exact_matches:
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
+938:             while (right_pos >= 0 and
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
+939:                    right_values[right_pos] >= left_values[left_pos]):
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 939, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 939, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 939, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 939, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 939, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 939, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 939, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 939, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 939, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 939, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 939, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 939, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 939, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 939, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 939, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 939, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 939, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 939, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_15 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_15 < 0) {
          __pyx_t_15 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_15 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_15 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 939, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 939, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_15 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
+940:                 right_pos -= 1
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
 941:         else:
+942:             while (right_pos >= 0 and
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
+943:                    right_values[right_pos] > left_values[left_pos]):
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 943, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 943, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 943, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 943, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 943, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 943, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 943, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 943, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 943, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 943, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 943, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 943, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 943, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 943, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 943, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 943, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 943, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 943, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 943, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 943, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
+944:                 right_pos -= 1
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
+945:         right_pos += 1
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
 946: 
 947:         # save positions as the desired index
+948:         left_indexer[left_pos] = left_pos
    __pyx_t_19 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 948, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_19 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 948, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_19 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 948, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_19 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 948, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_19 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 948, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_19 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 948, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_19 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 948, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_19 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 948, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_19 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 948, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_19 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 948, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
+949:         right_indexer[left_pos] = (right_pos
      __pyx_t_20 = __pyx_v_right_pos;
    } else {
      __pyx_t_20 = -1LL;
    }
    __pyx_t_21 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 949, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_20;
/* … */
      __pyx_t_20 = __pyx_v_right_pos;
    } else {
      __pyx_t_20 = -1LL;
    }
    __pyx_t_21 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 949, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_20;
/* … */
      __pyx_t_20 = __pyx_v_right_pos;
    } else {
      __pyx_t_20 = -1LL;
    }
    __pyx_t_21 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 949, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_20;
/* … */
      __pyx_t_20 = __pyx_v_right_pos;
    } else {
      __pyx_t_20 = -1LL;
    }
    __pyx_t_21 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 949, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_20;
/* … */
      __pyx_t_20 = __pyx_v_right_pos;
    } else {
      __pyx_t_20 = -1LL;
    }
    __pyx_t_21 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 949, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_20;
/* … */
      __pyx_t_20 = __pyx_v_right_pos;
    } else {
      __pyx_t_20 = -1LL;
    }
    __pyx_t_21 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 949, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_20;
/* … */
      __pyx_t_20 = __pyx_v_right_pos;
    } else {
      __pyx_t_20 = -1LL;
    }
    __pyx_t_21 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 949, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_20;
/* … */
      __pyx_t_3 = __pyx_v_right_pos;
    } else {
      __pyx_t_3 = -1LL;
    }
    __pyx_t_20 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_20 < 0) {
      __pyx_t_20 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_20 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_20 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 949, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_3;
/* … */
      __pyx_t_20 = __pyx_v_right_pos;
    } else {
      __pyx_t_20 = -1LL;
    }
    __pyx_t_21 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 949, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_20;
/* … */
      __pyx_t_20 = __pyx_v_right_pos;
    } else {
      __pyx_t_20 = -1LL;
    }
    __pyx_t_21 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 949, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_20;
+950:                                    if right_pos != right_size else -1)
    if (((__pyx_v_right_pos != __pyx_v_right_size) != 0)) {
/* … */
    if (((__pyx_v_right_pos != __pyx_v_right_size) != 0)) {
/* … */
    if (((__pyx_v_right_pos != __pyx_v_right_size) != 0)) {
/* … */
    if (((__pyx_v_right_pos != __pyx_v_right_size) != 0)) {
/* … */
    if (((__pyx_v_right_pos != __pyx_v_right_size) != 0)) {
/* … */
    if (((__pyx_v_right_pos != __pyx_v_right_size) != 0)) {
/* … */
    if (((__pyx_v_right_pos != __pyx_v_right_size) != 0)) {
/* … */
    if (((__pyx_v_right_pos != __pyx_v_right_size) != 0)) {
/* … */
    if (((__pyx_v_right_pos != __pyx_v_right_size) != 0)) {
/* … */
    if (((__pyx_v_right_pos != __pyx_v_right_size) != 0)) {
 951: 
 952:         # if needed, verify that tolerance is met
+953:         if has_tolerance and right_pos != right_size:
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != __pyx_v_right_size) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != __pyx_v_right_size) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != __pyx_v_right_size) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != __pyx_v_right_size) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != __pyx_v_right_size) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != __pyx_v_right_size) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != __pyx_v_right_size) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != __pyx_v_right_size) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != __pyx_v_right_size) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != __pyx_v_right_size) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
+954:             diff = right_values[right_pos] - left_values[left_pos]
      __pyx_t_22 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 954, __pyx_L1_error)
      }
      __pyx_t_23 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 954, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_22 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_22 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 954, __pyx_L1_error)
      }
      __pyx_t_23 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 954, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_22 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_22 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 954, __pyx_L1_error)
      }
      __pyx_t_23 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 954, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_22 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_22 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 954, __pyx_L1_error)
      }
      __pyx_t_23 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 954, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_22 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_22 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 954, __pyx_L1_error)
      }
      __pyx_t_23 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 954, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_22 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_22 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 954, __pyx_L1_error)
      }
      __pyx_t_23 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 954, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_22 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_22 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 954, __pyx_L1_error)
      }
      __pyx_t_23 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 954, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_22 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 954, __pyx_L1_error)
      }
      __pyx_t_22 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 954, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_21 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_22 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_22 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 954, __pyx_L1_error)
      }
      __pyx_t_23 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 954, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_22 * __pyx_v_right_values.strides[0]) ))) - (*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_22 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 954, __pyx_L1_error)
      }
      __pyx_t_23 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 954, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_22 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
+955:             if diff > tolerance_:
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
+956:                 right_indexer[left_pos] = -1
        __pyx_t_24 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_24 < 0) {
          __pyx_t_24 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_24 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 956, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_24 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_24 < 0) {
          __pyx_t_24 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_24 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 956, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_24 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_24 < 0) {
          __pyx_t_24 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_24 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 956, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_24 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_24 < 0) {
          __pyx_t_24 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_24 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 956, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_24 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_24 < 0) {
          __pyx_t_24 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_24 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 956, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_24 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_24 < 0) {
          __pyx_t_24 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_24 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 956, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_24 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_24 < 0) {
          __pyx_t_24 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_24 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 956, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_23 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 956, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_24 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_24 < 0) {
          __pyx_t_24 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_24 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 956, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
/* … */
        __pyx_t_24 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_24 < 0) {
          __pyx_t_24 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_24 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 956, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1LL;
 957: 
+958:     return left_indexer, right_indexer
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
 959: 
 960: 
+961: def asof_join_nearest(asof_t[:] left_values,
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_27asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_27asof_join_nearest = {"asof_join_nearest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pandas_5_libs_4join_27asof_join_nearest, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6pandas_5_libs_4join_27asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  PyObject *__pyx_v__fused_sigindex = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,&__pyx_n_s_fused_sigindex,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,&__pyx_n_s_fused_sigindex,0};
    #endif
    PyObject* values[5] = {0,0,0,0,0};
    __pyx_defaults229 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults229, __pyx_self);
    values[2] = __pyx_k__11;
    values[3] = __pyx_k__12;
    values[4] = __pyx_dynamic_args->__pyx_arg__fused_sigindex;
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        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_signatures)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __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_args)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 1); __PYX_ERR(0, 961, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_kwargs);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_defaults);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fused_sigindex);
          if (value) { values[4] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const 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_fused_cpdef") < 0)) __PYX_ERR(0, 961, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        values[2] = __Pyx_Arg_VARARGS(__pyx_args, 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_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
    __pyx_v__fused_sigindex = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, __pyx_nargs); __PYX_ERR(0, 961, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_26asof_join_nearest(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults, __pyx_v__fused_sigindex);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_26asof_join_nearest(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults, PyObject *__pyx_v__fused_sigindex) {
  PyObject *__pyx_v_search_list = 0;
  PyObject *__pyx_v_sn = 0;
  PyObject *__pyx_v_sigindex_node = 0;
  PyObject *__pyx_v_dest_sig = NULL;
  PyTypeObject *__pyx_v_ndarray = 0;
  __Pyx_memviewslice __pyx_v_memslice;
  Py_ssize_t __pyx_v_itemsize;
  int __pyx_v_dtype_signed;
  char __pyx_v_kind;
  int __pyx_v____pyx_uint8_t_is_signed;
  int __pyx_v____pyx_uint16_t_is_signed;
  int __pyx_v____pyx_uint32_t_is_signed;
  int __pyx_v____pyx_uint64_t_is_signed;
  int __pyx_v____pyx_int8_t_is_signed;
  int __pyx_v____pyx_int16_t_is_signed;
  int __pyx_v____pyx_int32_t_is_signed;
  int __pyx_v____pyx_int64_t_is_signed;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_dtype = NULL;
  PyObject *__pyx_v_arg_base = NULL;
  PyObject *__pyx_v_sig = NULL;
  PyObject *__pyx_v_sig_series = NULL;
  PyObject *__pyx_v_sig_type = NULL;
  PyObject *__pyx_v_sigindex_matches = NULL;
  PyObject *__pyx_v_sigindex_candidates = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_v_found_matches = NULL;
  PyObject *__pyx_v_found_candidates = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  __pyx_v____pyx_uint8_t_is_signed = (!((((__pyx_t_5numpy_uint8_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint16_t_is_signed = (!((((__pyx_t_5numpy_uint16_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint32_t_is_signed = (!((((__pyx_t_5numpy_uint32_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
  __pyx_v____pyx_int8_t_is_signed = (!((((__pyx_t_5numpy_int8_t)-1L) > 0) != 0));
  __pyx_v____pyx_int16_t_is_signed = (!((((__pyx_t_5numpy_int16_t)-1L) > 0) != 0));
  __pyx_v____pyx_int32_t_is_signed = (!((((__pyx_t_5numpy_int32_t)-1L) > 0) != 0));
  __pyx_v____pyx_int64_t_is_signed = (!((((__pyx_t_5numpy_int64_t)-1L) > 0) != 0));
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 961, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 961, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 961, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 961, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_left_values, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (likely(__pyx_t_2)) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 961, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_left_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 961, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 961, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 961, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 961, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_dtype = __pyx_t_6;
        __pyx_t_6 = 0;
        goto __pyx_L12;
      }
      __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg); 
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 961, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_arg_base = __pyx_t_6;
        __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
        __pyx_t_2 = (__pyx_t_3 != 0);
        if (__pyx_t_2) {
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_v_dtype = __pyx_t_6;
          __pyx_t_6 = 0;
          goto __pyx_L13;
        }
        /*else*/ {
          __Pyx_INCREF(Py_None);
          __pyx_v_dtype = Py_None;
        }
        __pyx_L13:;
        goto __pyx_L12;
      }
      /*else*/ {
        __Pyx_INCREF(Py_None);
        __pyx_v_dtype = Py_None;
      }
      __pyx_L12:;
      __pyx_v_itemsize = -1L;
      __pyx_t_2 = (__pyx_v_dtype != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 961, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_itemsize = __pyx_t_5;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 961, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 961, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_kind = __pyx_t_7;
        __pyx_v_dtype_signed = (__pyx_v_kind == 'i');
        switch (__pyx_v_kind) {
          case 'i':
          case 'u':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L16_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L20_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L24_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L28_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L32_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L36_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L40_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L44_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'f':
          __pyx_t_2 = (((sizeof(float)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L48_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L48_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L51_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L51_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'c':
          break;
          case 'O':
          break;
          default: break;
        }
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L54_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L54_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L58_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L58_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L62_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L62_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L66_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L66_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L70_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L70_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L74_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L74_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L78_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L78_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L82_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L82_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L86_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(float))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L86_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_float(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L90_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L90_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v__fused_sigindex); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_5 = 0;
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
      __PYX_ERR(0, 961, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF(__pyx_t_6);
    __pyx_t_6 = __pyx_t_1;
    __pyx_t_1 = 0;
    while (1) {
      __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_9, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_10);
      if (unlikely(__pyx_t_11 == 0)) break;
      if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 961, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
      __pyx_t_1 = 0;
      if (!(likely(PyDict_CheckExact(__pyx_v__fused_sigindex))||((__pyx_v__fused_sigindex) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_v__fused_sigindex))), 0))) __PYX_ERR(0, 961, __pyx_L1_error)
      __pyx_t_1 = __pyx_v__fused_sigindex;
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_sigindex_node, ((PyObject*)__pyx_t_1));
      __pyx_t_1 = 0;
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 961, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_14 = NULL;
      __pyx_t_11 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
        __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
        if (likely(__pyx_t_14)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_14);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_13, function);
          __pyx_t_11 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_14, __pyx_kp_s__2};
        __pyx_t_12 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_11, 1+__pyx_t_11);
        __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 961, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 961, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_12 = NULL;
      __pyx_t_15 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
        __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
        if (likely(__pyx_t_12)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_12);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_13, function);
          __pyx_t_15 = 1;
        }
      }
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_kp_s__3};
        __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_15, 1+__pyx_t_15);
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __Pyx_XDECREF_SET(__pyx_v_sig_series, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_sig_series, 0, -1L, NULL, NULL, &__pyx_slice__4, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
        __pyx_t_13 = __pyx_t_1; __Pyx_INCREF(__pyx_t_13); __pyx_t_16 = 0;
        __pyx_t_17 = NULL;
      } else {
        __pyx_t_16 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 961, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_17 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 961, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      for (;;) {
        if (likely(!__pyx_t_17)) {
          if (likely(PyList_CheckExact(__pyx_t_13))) {
            if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_13)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_1); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          } else {
            if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_1); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          }
        } else {
          __pyx_t_1 = __pyx_t_17(__pyx_t_13);
          if (unlikely(!__pyx_t_1)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 961, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_XDECREF_SET(__pyx_v_sig_type, __pyx_t_1);
        __pyx_t_1 = 0;
        if (unlikely(__pyx_v_sigindex_node == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
          __PYX_ERR(0, 961, __pyx_L1_error)
        }
        __pyx_t_2 = (__Pyx_PyDict_ContainsTF(__pyx_v_sig_type, __pyx_v_sigindex_node, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
        __pyx_t_3 = (__pyx_t_2 != 0);
        if (__pyx_t_3) {
          __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          if (unlikely(__pyx_v_sigindex_node == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 961, __pyx_L1_error)
          }
          if (unlikely(PyDict_SetItem(__pyx_v_sigindex_node, __pyx_v_sig_type, __pyx_t_1) < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_INCREF(__pyx_t_1);
          __Pyx_DECREF_SET(__pyx_v_sigindex_node, __pyx_t_1);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          goto __pyx_L98;
        }
        /*else*/ {
          if (unlikely(__pyx_v_sigindex_node == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 961, __pyx_L1_error)
          }
          __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_sigindex_node, __pyx_v_sig_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_1))), 0))) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_DECREF_SET(__pyx_v_sigindex_node, ((PyObject*)__pyx_t_1));
          __pyx_t_1 = 0;
        }
        __pyx_L98:;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      if (unlikely(__pyx_v_sigindex_node == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(0, 961, __pyx_L1_error)
      }
      __pyx_t_13 = __Pyx_GetItemInt(__pyx_v_sig_series, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 961, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      if (unlikely(PyDict_SetItem(__pyx_v_sigindex_node, __pyx_t_13, __pyx_v_sig) < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_sigindex_matches = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v__fused_sigindex);
  __Pyx_GIVEREF(__pyx_v__fused_sigindex);
  PyList_SET_ITEM(__pyx_t_6, 0, __pyx_v__fused_sigindex);
  __pyx_v_sigindex_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __pyx_v_dest_sig; __Pyx_INCREF(__pyx_t_6); __pyx_t_9 = 0;
  for (;;) {
    if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_6)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_13 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_9); __Pyx_INCREF(__pyx_t_13); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
    #else
    __pyx_t_13 = PySequence_ITEM(__pyx_t_6, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_13);
    __pyx_t_13 = 0;
    __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_XDECREF_SET(__pyx_v_found_matches, ((PyObject*)__pyx_t_13));
    __pyx_t_13 = 0;
    __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_XDECREF_SET(__pyx_v_found_candidates, ((PyObject*)__pyx_t_13));
    __pyx_t_13 = 0;
    __pyx_t_3 = (__pyx_v_dst_type == Py_None);
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      __pyx_t_13 = __pyx_v_sigindex_matches; __Pyx_INCREF(__pyx_t_13); __pyx_t_5 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
        if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_1))), 0))) __PYX_ERR(0, 961, __pyx_L1_error)
        __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_1));
        __pyx_t_1 = 0;
        if (unlikely(__pyx_v_sn == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
          __PYX_ERR(0, 961, __pyx_L1_error)
        }
        __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_sn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_18 = __Pyx_PyList_Extend(__pyx_v_found_matches, __pyx_t_1); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 961, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_13 = __pyx_v_sigindex_candidates; __Pyx_INCREF(__pyx_t_13); __pyx_t_5 = 0;
      for (;;) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
        if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_1))), 0))) __PYX_ERR(0, 961, __pyx_L1_error)
        __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_1));
        __pyx_t_1 = 0;
        if (unlikely(__pyx_v_sn == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
          __PYX_ERR(0, 961, __pyx_L1_error)
        }
        __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_sn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_18 = __Pyx_PyList_Extend(__pyx_v_found_candidates, __pyx_t_1); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 961, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      goto __pyx_L101;
    }
    /*else*/ {
      __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 961, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_INCREF(__pyx_v_sigindex_matches);
      __Pyx_GIVEREF(__pyx_v_sigindex_matches);
      PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_v_sigindex_matches);
      __Pyx_INCREF(__pyx_v_sigindex_candidates);
      __Pyx_GIVEREF(__pyx_v_sigindex_candidates);
      PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_v_sigindex_candidates);
      __pyx_t_1 = __pyx_t_13; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      for (;;) {
        if (__pyx_t_5 >= 2) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_13); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
        #else
        __pyx_t_13 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 961, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        #endif
        __Pyx_XDECREF_SET(__pyx_v_search_list, ((PyObject*)__pyx_t_13));
        __pyx_t_13 = 0;
        if (unlikely(__pyx_v_search_list == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
          __PYX_ERR(0, 961, __pyx_L1_error)
        }
        __pyx_t_13 = __pyx_v_search_list; __Pyx_INCREF(__pyx_t_13); __pyx_t_16 = 0;
        for (;;) {
          if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_13)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_12 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_16); __Pyx_INCREF(__pyx_t_12); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
          #else
          __pyx_t_12 = PySequence_ITEM(__pyx_t_13, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          #endif
          if (!(likely(PyDict_CheckExact(__pyx_t_12))||((__pyx_t_12) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", __Pyx_PyType_Name(Py_TYPE(__pyx_t_12))), 0))) __PYX_ERR(0, 961, __pyx_L1_error)
          __Pyx_XDECREF_SET(__pyx_v_sn, ((PyObject*)__pyx_t_12));
          __pyx_t_12 = 0;
          if (unlikely(__pyx_v_sn == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
            __PYX_ERR(0, 961, __pyx_L1_error)
          }
          __pyx_t_2 = (__Pyx_PyDict_ContainsTF(__pyx_v_dst_type, __pyx_v_sn, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 961, __pyx_L1_error)
          __pyx_t_3 = (__pyx_t_2 != 0);
          if (__pyx_t_3) {
            if (unlikely(__pyx_v_sn == Py_None)) {
              PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
              __PYX_ERR(0, 961, __pyx_L1_error)
            }
            __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_sn, __pyx_v_dst_type); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 961, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_found_matches, __pyx_t_12); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 961, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          }
        }
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L101:;
    __Pyx_INCREF(__pyx_v_found_matches);
    __Pyx_DECREF_SET(__pyx_v_sigindex_matches, __pyx_v_found_matches);
    __Pyx_INCREF(__pyx_v_found_candidates);
    __Pyx_DECREF_SET(__pyx_v_sigindex_candidates, __pyx_v_found_candidates);
    __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_found_matches) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L112_bool_binop_done;
    }
    __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_found_candidates) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L112_bool_binop_done:;
    __pyx_t_2 = ((!__pyx_t_3) != 0);
    if (__pyx_t_2) {
      goto __pyx_L100_break;
    }
  }
  __pyx_L100_break:;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_INCREF(__pyx_v_sigindex_matches);
  __pyx_v_candidates = __pyx_v_sigindex_matches;
  __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (unlikely(__pyx_t_3)) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 961, __pyx_L1_error)
  }
  __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 961, __pyx_L1_error)
  __pyx_t_3 = ((__pyx_t_9 > 1) != 0);
  if (unlikely(__pyx_t_3)) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 961, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 961, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_search_list);
  __Pyx_XDECREF(__pyx_v_sn);
  __Pyx_XDECREF(__pyx_v_sigindex_node);
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF((PyObject *)__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_dtype);
  __Pyx_XDECREF(__pyx_v_arg_base);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_sig_series);
  __Pyx_XDECREF(__pyx_v_sig_type);
  __Pyx_XDECREF(__pyx_v_sigindex_matches);
  __Pyx_XDECREF(__pyx_v_sigindex_candidates);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_found_matches);
  __Pyx_XDECREF(__pyx_v_found_candidates);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_812__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults240, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults240, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults240, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults240, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_0__pyx_pw_6pandas_5_libs_4join_331asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_331asof_join_nearest = {"__pyx_fuse_0asof_join_nearest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_331asof_join_nearest, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_331asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults240 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults240, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, 1); __PYX_ERR(0, 961, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest") < 0)) __PYX_ERR(0, 961, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 961, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 962, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 963, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 961, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_330asof_join_nearest(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_330asof_join_nearest(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint8_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint8_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0asof_join_nearest", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_814__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults241, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults241, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults241, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults241, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_1__pyx_pw_6pandas_5_libs_4join_333asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_333asof_join_nearest = {"__pyx_fuse_1asof_join_nearest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_333asof_join_nearest, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_333asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults241 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults241, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, 1); __PYX_ERR(0, 961, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest") < 0)) __PYX_ERR(0, 961, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 961, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 962, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 963, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 961, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_332asof_join_nearest(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_332asof_join_nearest(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint16_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint16_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1asof_join_nearest", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_816__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults242, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults242, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults242, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults242, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_2__pyx_pw_6pandas_5_libs_4join_335asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_335asof_join_nearest = {"__pyx_fuse_2asof_join_nearest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_335asof_join_nearest, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_335asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults242 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults242, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, 1); __PYX_ERR(0, 961, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest") < 0)) __PYX_ERR(0, 961, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 961, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 962, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 963, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 961, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_334asof_join_nearest(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_334asof_join_nearest(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint32_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint32_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2asof_join_nearest", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_818__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults243, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults243, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults243, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults243, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_3__pyx_pw_6pandas_5_libs_4join_337asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_337asof_join_nearest = {"__pyx_fuse_3asof_join_nearest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_337asof_join_nearest, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_337asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults243 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults243, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, 1); __PYX_ERR(0, 961, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest") < 0)) __PYX_ERR(0, 961, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 961, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 962, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 963, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 961, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_336asof_join_nearest(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_336asof_join_nearest(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint64_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3asof_join_nearest", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_820__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults244, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults244, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults244, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults244, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_4__pyx_pw_6pandas_5_libs_4join_339asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_339asof_join_nearest = {"__pyx_fuse_4asof_join_nearest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_339asof_join_nearest, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_339asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults244 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults244, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, 1); __PYX_ERR(0, 961, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest") < 0)) __PYX_ERR(0, 961, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 961, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 962, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 963, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 961, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_338asof_join_nearest(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_338asof_join_nearest(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int8_t __pyx_v_bdiff;
  __pyx_t_5numpy_int8_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4asof_join_nearest", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_822__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults245, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults245, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults245, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults245, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_5__pyx_pw_6pandas_5_libs_4join_341asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_341asof_join_nearest = {"__pyx_fuse_5asof_join_nearest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_341asof_join_nearest, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_341asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults245 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults245, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, 1); __PYX_ERR(0, 961, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest") < 0)) __PYX_ERR(0, 961, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 961, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 962, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 963, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 961, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_340asof_join_nearest(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_340asof_join_nearest(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int16_t __pyx_v_bdiff;
  __pyx_t_5numpy_int16_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5asof_join_nearest", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_824__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults246, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults246, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults246, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults246, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_6__pyx_pw_6pandas_5_libs_4join_343asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_343asof_join_nearest = {"__pyx_fuse_6asof_join_nearest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_343asof_join_nearest, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_343asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults246 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults246, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, 1); __PYX_ERR(0, 961, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest") < 0)) __PYX_ERR(0, 961, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 961, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 962, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 963, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 961, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_342asof_join_nearest(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_342asof_join_nearest(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int32_t __pyx_v_bdiff;
  __pyx_t_5numpy_int32_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6asof_join_nearest", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_826__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults247, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults247, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults247, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults247, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_7__pyx_pw_6pandas_5_libs_4join_345asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_345asof_join_nearest = {"__pyx_fuse_7asof_join_nearest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_345asof_join_nearest, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_345asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults247 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults247, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, 1); __PYX_ERR(0, 961, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest") < 0)) __PYX_ERR(0, 961, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 961, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 962, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 963, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 961, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_344asof_join_nearest(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_344asof_join_nearest(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int64_t __pyx_v_bdiff;
  __pyx_t_5numpy_int64_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7asof_join_nearest", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_828__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults248, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults248, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults248, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults248, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_8__pyx_pw_6pandas_5_libs_4join_347asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8__pyx_mdef_6pandas_5_libs_4join_347asof_join_nearest = {"__pyx_fuse_8asof_join_nearest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8__pyx_pw_6pandas_5_libs_4join_347asof_join_nearest, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_8__pyx_pw_6pandas_5_libs_4join_347asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults248 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults248, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, 1); __PYX_ERR(0, 961, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest") < 0)) __PYX_ERR(0, 961, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 961, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_float(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 962, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 963, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 961, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_346asof_join_nearest(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_346asof_join_nearest(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  float __pyx_v_bdiff;
  float __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8asof_join_nearest", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_830__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults249, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults249, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults249, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults249, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__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_fuse_9__pyx_pw_6pandas_5_libs_4join_349asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9__pyx_mdef_6pandas_5_libs_4join_349asof_join_nearest = {"__pyx_fuse_9asof_join_nearest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9__pyx_pw_6pandas_5_libs_4join_349asof_join_nearest, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_9__pyx_pw_6pandas_5_libs_4join_349asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest (wrapper)", 0);
  {
    #if CYTHON_COMPILING_IN_LIMITED_API
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #else
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    #endif
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults249 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults249, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    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_left_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __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_right_values)) != 0)) kw_args--;
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, 1); __PYX_ERR(0, 961, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asof_join_nearest") < 0)) __PYX_ERR(0, 961, __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);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 961, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 962, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 963, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, __pyx_nargs); __PYX_ERR(0, 961, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_348asof_join_nearest(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);

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

static PyObject *__pyx_pf_6pandas_5_libs_4join_348asof_join_nearest(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_float64_t __pyx_v_bdiff;
  __pyx_t_5numpy_float64_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9asof_join_nearest", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __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_12);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
    __pyx_t_26 = PyTuple_New(2); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __Pyx_GIVEREF(__pyx_t_25);
    PyTuple_SET_ITEM(__pyx_t_26, 0, __pyx_t_25);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_26, 1, Py_None);
    __pyx_t_25 = 0;
/* … */
  __pyx_tuple__65 = PyTuple_Pack(15, __pyx_n_s_left_values, __pyx_n_s_right_values, __pyx_n_s_allow_exact_matches, __pyx_n_s_tolerance, __pyx_n_s_left_size, __pyx_n_s_right_size, __pyx_n_s_i, __pyx_n_s_left_indexer, __pyx_n_s_right_indexer, __pyx_n_s_bli, __pyx_n_s_bri, __pyx_n_s_fli, __pyx_n_s_fri, __pyx_n_s_bdiff, __pyx_n_s_fdiff); if (unlikely(!__pyx_tuple__65)) __PYX_ERR(0, 961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__65);
  __Pyx_GIVEREF(__pyx_tuple__65);
/* … */
    __pyx_t_25 = __Pyx_PyDict_NewPresized(10); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_25);
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_28 = PyDict_New(); if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_28);
    __pyx_t_27 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_331asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_28, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
    #else
    __pyx_t_27 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_331asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 961, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_27);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_27, sizeof(__pyx_defaults240), 1)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults240, __pyx_t_27)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults240, __pyx_t_27)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_27, __pyx_t_26);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_27, __pyx_pf_6pandas_5_libs_4join_812__defaults__);
    if (PyDict_SetItem(__pyx_t_25, __pyx_n_s_uint8_t, __pyx_t_27) < 0) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_28 = PyDict_New(); if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_28);
    __pyx_t_27 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_333asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_28, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
    #else
    __pyx_t_27 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_333asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 961, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_27);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_27, sizeof(__pyx_defaults241), 1)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults241, __pyx_t_27)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults241, __pyx_t_27)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_27, __pyx_t_26);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_27, __pyx_pf_6pandas_5_libs_4join_814__defaults__);
    if (PyDict_SetItem(__pyx_t_25, __pyx_n_s_uint16_t, __pyx_t_27) < 0) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_28 = PyDict_New(); if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_28);
    __pyx_t_27 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_335asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_28, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
    #else
    __pyx_t_27 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_335asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 961, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_27);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_27, sizeof(__pyx_defaults242), 1)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults242, __pyx_t_27)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults242, __pyx_t_27)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_27, __pyx_t_26);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_27, __pyx_pf_6pandas_5_libs_4join_816__defaults__);
    if (PyDict_SetItem(__pyx_t_25, __pyx_n_s_uint32_t, __pyx_t_27) < 0) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_28 = PyDict_New(); if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_28);
    __pyx_t_27 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_337asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_28, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
    #else
    __pyx_t_27 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_337asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 961, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_27);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_27, sizeof(__pyx_defaults243), 1)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults243, __pyx_t_27)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults243, __pyx_t_27)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_27, __pyx_t_26);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_27, __pyx_pf_6pandas_5_libs_4join_818__defaults__);
    if (PyDict_SetItem(__pyx_t_25, __pyx_n_s_uint64_t, __pyx_t_27) < 0) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_28 = PyDict_New(); if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_28);
    __pyx_t_27 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_339asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_28, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
    #else
    __pyx_t_27 = __pyx_FusedFunction_NewEx(&__pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_339asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 961, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_27);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_27, sizeof(__pyx_defaults244), 1)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults244, __pyx_t_27)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults244, __pyx_t_27)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_27, __pyx_t_26);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_27, __pyx_pf_6pandas_5_libs_4join_820__defaults__);
    if (PyDict_SetItem(__pyx_t_25, __pyx_n_s_int8_t, __pyx_t_27) < 0) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_28 = PyDict_New(); if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_28);
    __pyx_t_27 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_341asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_28, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
    #else
    __pyx_t_27 = __pyx_FusedFunction_NewEx(&__pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_341asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 961, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_27);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_27, sizeof(__pyx_defaults245), 1)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults245, __pyx_t_27)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults245, __pyx_t_27)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_27, __pyx_t_26);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_27, __pyx_pf_6pandas_5_libs_4join_822__defaults__);
    if (PyDict_SetItem(__pyx_t_25, __pyx_n_s_int16_t, __pyx_t_27) < 0) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_28 = PyDict_New(); if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_28);
    __pyx_t_27 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_343asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_28, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
    #else
    __pyx_t_27 = __pyx_FusedFunction_NewEx(&__pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_343asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 961, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_27);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_27, sizeof(__pyx_defaults246), 1)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults246, __pyx_t_27)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults246, __pyx_t_27)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_27, __pyx_t_26);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_27, __pyx_pf_6pandas_5_libs_4join_824__defaults__);
    if (PyDict_SetItem(__pyx_t_25, __pyx_n_s_int32_t, __pyx_t_27) < 0) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_28 = PyDict_New(); if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_28);
    __pyx_t_27 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_345asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_28, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
    #else
    __pyx_t_27 = __pyx_FusedFunction_NewEx(&__pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_345asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 961, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_27);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_27, sizeof(__pyx_defaults247), 1)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults247, __pyx_t_27)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults247, __pyx_t_27)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_27, __pyx_t_26);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_27, __pyx_pf_6pandas_5_libs_4join_826__defaults__);
    if (PyDict_SetItem(__pyx_t_25, __pyx_n_s_int64_t, __pyx_t_27) < 0) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_28 = PyDict_New(); if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_28);
    __pyx_t_27 = __pyx_FusedFunction_NewEx(&__pyx_fuse_8__pyx_mdef_6pandas_5_libs_4join_347asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_28, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
    #else
    __pyx_t_27 = __pyx_FusedFunction_NewEx(&__pyx_fuse_8__pyx_mdef_6pandas_5_libs_4join_347asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 961, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_27);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_27, sizeof(__pyx_defaults248), 1)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults248, __pyx_t_27)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults248, __pyx_t_27)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_27, __pyx_t_26);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_27, __pyx_pf_6pandas_5_libs_4join_828__defaults__);
    if (PyDict_SetItem(__pyx_t_25, __pyx_n_s_float, __pyx_t_27) < 0) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_28 = PyDict_New(); if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_28);
    __pyx_t_27 = __pyx_FusedFunction_NewEx(&__pyx_fuse_9__pyx_mdef_6pandas_5_libs_4join_349asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_28, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
    #else
    __pyx_t_27 = __pyx_FusedFunction_NewEx(&__pyx_fuse_9__pyx_mdef_6pandas_5_libs_4join_349asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 961, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_27);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_27, sizeof(__pyx_defaults249), 1)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_INCREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults249, __pyx_t_27)->__pyx_arg_tolerance = Py_None;
    __Pyx_GIVEREF(Py_None);
    __Pyx_CyFunction_Defaults(__pyx_defaults249, __pyx_t_27)->__pyx_arg_allow_exact_matches = 1;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_27, __pyx_t_26);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_27, __pyx_pf_6pandas_5_libs_4join_830__defaults__);
    if (PyDict_SetItem(__pyx_t_25, __pyx_n_s_float64_t, __pyx_t_27) < 0) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    #if CYTHON_COMPILING_IN_LIMITED_API
    __pyx_t_28 = PyDict_New(); if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_28);
    __pyx_t_27 = __pyx_FusedFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_27asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_t_28, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
    #else
    __pyx_t_27 = __pyx_FusedFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_27asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 961, __pyx_L1_error)
    #endif
    __Pyx_GOTREF(__pyx_t_27);
    if (!__Pyx_CyFunction_InitDefaults(__pyx_t_27, sizeof(__pyx_defaults229), 1)) __PYX_ERR(0, 961, __pyx_L1_error)
    __pyx_t_28 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_28);
    __Pyx_CyFunction_Defaults(__pyx_defaults229, __pyx_t_27)->__pyx_arg__fused_sigindex = __pyx_t_28;
    __Pyx_GIVEREF(__pyx_t_28);
    __pyx_t_28 = 0;
    __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_27, __pyx_t_26);
    __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_27, __pyx_pf_6pandas_5_libs_4join_812__defaults__);
    ((__pyx_FusedFunctionObject *) __pyx_t_27)->__signatures__ = __pyx_t_25;
    __Pyx_GIVEREF(__pyx_t_25);
    #if CYTHON_COMPILING_IN_LIMITED_API
    __Pyx_INCREF(__pyx_t_27);
    if (PyModule_AddObject(__pyx_m, __pyx_k_asof_join_nearest, __pyx_t_27) < 0) __PYX_ERR(0, 961, __pyx_L1_error)
    #else
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_asof_join_nearest, __pyx_t_27) < 0) __PYX_ERR(0, 961, __pyx_L1_error)
    #endif
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
  __pyx_codeobj__66 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__65, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_asof_join_nearest, 961, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__66)) __PYX_ERR(0, 961, __pyx_L1_error)
 962:                       asof_t[:] right_values,
+963:                       bint allow_exact_matches=True,
    __pyx_t_25 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 963, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_25);
/* … */
    __pyx_t_25 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 963, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_25);
    __pyx_k__11 = __pyx_t_25;
    __Pyx_GIVEREF(__pyx_t_25);
    __pyx_t_25 = 0;
    __Pyx_INCREF(Py_None);
    __pyx_k__12 = Py_None;
    __Pyx_GIVEREF(Py_None);
 964:                       tolerance=None):
 965: 
 966:     cdef:
 967:         Py_ssize_t left_size, right_size, i
 968:         ndarray[int64_t] left_indexer, right_indexer, bli, bri, fli, fri
 969:         asof_t bdiff, fdiff
 970: 
+971:     left_size = len(left_values)
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
+972:     right_size = len(right_values)
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
 973: 
+974:     left_indexer = np.empty(left_size, dtype=np.int64)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __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, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 974, __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, 974, __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, 974, __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, 974, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 974, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __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, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 974, __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, 974, __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, 974, __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, 974, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 974, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __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, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 974, __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, 974, __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, 974, __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, 974, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 974, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __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, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 974, __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, 974, __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, 974, __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, 974, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 974, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __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, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 974, __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, 974, __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, 974, __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, 974, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 974, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __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, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 974, __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, 974, __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, 974, __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, 974, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 974, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __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, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 974, __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, 974, __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, 974, __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, 974, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 974, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __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, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 974, __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, 974, __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, 974, __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, 974, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 974, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __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, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 974, __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, 974, __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, 974, __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, 974, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 974, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __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, 974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 974, __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, 974, __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, 974, __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, 974, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 974, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
+975:     right_indexer = np.empty(left_size, dtype=np.int64)
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 975, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 975, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 975, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 975, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 975, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 975, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 975, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 975, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 975, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 975, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 975, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 975, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 975, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 975, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 975, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 975, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 975, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 975, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 975, __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_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 975, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
 976: 
 977:     # search both forward and backward
+978:     bli, bri = asof_join_backward(left_values, right_values,
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 978, __pyx_L1_error)
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 978, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_14 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 978, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_3);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_14 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 978, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_3);
  __pyx_t_3 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 978, __pyx_L1_error)
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 978, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_14 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 978, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_3);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_14 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 978, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_3);
  __pyx_t_3 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 978, __pyx_L1_error)
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 978, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_14 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 978, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_3);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_14 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 978, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_3);
  __pyx_t_3 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 978, __pyx_L1_error)
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 978, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_14 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 978, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_3);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_14 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 978, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_3);
  __pyx_t_3 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 978, __pyx_L1_error)
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 978, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_14 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 978, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_3);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_14 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 978, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_3);
  __pyx_t_3 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 978, __pyx_L1_error)
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 978, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_14 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 978, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_3);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_14 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 978, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_3);
  __pyx_t_3 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 978, __pyx_L1_error)
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 978, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_14 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 978, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_3);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_14 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 978, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_3);
  __pyx_t_3 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 978, __pyx_L1_error)
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 978, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_14 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 978, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_3);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_14 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 978, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_3);
  __pyx_t_3 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 978, __pyx_L1_error)
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 978, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_14 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 978, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_3);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_14 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 978, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_3);
  __pyx_t_3 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 978, __pyx_L1_error)
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 978, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_14 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 978, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_3);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_14 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 978, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_3);
  __pyx_t_3 = 0;
+979:                                   allow_exact_matches, tolerance)
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 979, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 4+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 978, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_3);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_3 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_2), 2) < 0) __PYX_ERR(0, 978, __pyx_L1_error)
    __pyx_t_13 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_13 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 978, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 979, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 4+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 978, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_3);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_3 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_2), 2) < 0) __PYX_ERR(0, 978, __pyx_L1_error)
    __pyx_t_13 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_13 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 978, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 979, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 4+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 978, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_3);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_3 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_2), 2) < 0) __PYX_ERR(0, 978, __pyx_L1_error)
    __pyx_t_13 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_13 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 978, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 979, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 4+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 978, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_3);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_3 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_2), 2) < 0) __PYX_ERR(0, 978, __pyx_L1_error)
    __pyx_t_13 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_13 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 978, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 979, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 4+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 978, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_3);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_3 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_2), 2) < 0) __PYX_ERR(0, 978, __pyx_L1_error)
    __pyx_t_13 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_13 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 978, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 979, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 4+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 978, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_3);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_3 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_2), 2) < 0) __PYX_ERR(0, 978, __pyx_L1_error)
    __pyx_t_13 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_13 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 978, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 979, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 4+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 978, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_3);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_3 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_2), 2) < 0) __PYX_ERR(0, 978, __pyx_L1_error)
    __pyx_t_13 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_13 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 978, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 979, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 4+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 978, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_3);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_3 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_2), 2) < 0) __PYX_ERR(0, 978, __pyx_L1_error)
    __pyx_t_13 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_13 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 978, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 979, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 4+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 978, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_3);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_3 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_2), 2) < 0) __PYX_ERR(0, 978, __pyx_L1_error)
    __pyx_t_13 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_13 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 978, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 979, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 4+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 978, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_3);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_3 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_2), 2) < 0) __PYX_ERR(0, 978, __pyx_L1_error)
    __pyx_t_13 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_13 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 978, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
+980:     fli, fri = asof_join_forward(left_values, right_values,
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_asof_join_forward); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 980, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 980, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_3);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 980, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 980, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_asof_join_forward); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 980, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 980, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_3);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 980, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 980, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_asof_join_forward); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 980, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 980, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_3);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 980, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 980, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_asof_join_forward); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 980, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 980, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_3);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 980, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 980, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_asof_join_forward); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 980, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 980, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_3);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 980, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 980, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_asof_join_forward); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 980, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 980, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_3);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 980, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 980, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_asof_join_forward); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 980, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 980, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_3);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 980, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 980, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_asof_join_forward); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 980, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 980, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_3);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 980, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 980, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_asof_join_forward); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_float, (int (*)(char *, PyObject *)) __pyx_memview_set_float, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 980, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 980, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_3);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 980, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 980, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_asof_join_forward); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 980, __pyx_L1_error)
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 980, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_3);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 980, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_15 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 980, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
+981:                                  allow_exact_matches, tolerance)
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 981, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_12 = NULL;
  __pyx_t_14 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_14 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_12, __pyx_t_6, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_14, 4+__pyx_t_14);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 980, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_3 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_3 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    index = 1; __pyx_t_4 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_2), 2) < 0) __PYX_ERR(0, 980, __pyx_L1_error)
    __pyx_t_13 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_13 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 980, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 981, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_12 = NULL;
  __pyx_t_14 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_14 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_12, __pyx_t_6, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_14, 4+__pyx_t_14);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 980, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_3 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_3 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    index = 1; __pyx_t_4 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_2), 2) < 0) __PYX_ERR(0, 980, __pyx_L1_error)
    __pyx_t_13 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_13 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 980, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 981, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_12 = NULL;
  __pyx_t_14 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_14 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_12, __pyx_t_6, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_14, 4+__pyx_t_14);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 980, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_3 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_3 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    index = 1; __pyx_t_4 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_2), 2) < 0) __PYX_ERR(0, 980, __pyx_L1_error)
    __pyx_t_13 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_13 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 980, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 981, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_12 = NULL;
  __pyx_t_14 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_14 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_12, __pyx_t_6, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_14, 4+__pyx_t_14);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 980, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_3 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_3 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    index = 1; __pyx_t_4 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_2), 2) < 0) __PYX_ERR(0, 980, __pyx_L1_error)
    __pyx_t_13 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_13 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 980, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 981, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_12 = NULL;
  __pyx_t_14 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_14 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_12, __pyx_t_6, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_14, 4+__pyx_t_14);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 980, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_3 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_3 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    index = 1; __pyx_t_4 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_2), 2) < 0) __PYX_ERR(0, 980, __pyx_L1_error)
    __pyx_t_13 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_13 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 980, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 981, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_12 = NULL;
  __pyx_t_14 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_14 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_12, __pyx_t_6, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_14, 4+__pyx_t_14);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 980, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_3 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_3 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    index = 1; __pyx_t_4 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_2), 2) < 0) __PYX_ERR(0, 980, __pyx_L1_error)
    __pyx_t_13 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_13 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 980, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 981, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_12 = NULL;
  __pyx_t_14 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_14 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_12, __pyx_t_6, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_14, 4+__pyx_t_14);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 980, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_3 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_3 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    index = 1; __pyx_t_4 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_2), 2) < 0) __PYX_ERR(0, 980, __pyx_L1_error)
    __pyx_t_13 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_13 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 980, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 981, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_12 = NULL;
  __pyx_t_14 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_14 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_12, __pyx_t_6, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_14, 4+__pyx_t_14);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 980, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_3 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_3 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    index = 1; __pyx_t_4 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_2), 2) < 0) __PYX_ERR(0, 980, __pyx_L1_error)
    __pyx_t_13 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_13 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 980, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 981, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_12 = NULL;
  __pyx_t_14 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_14 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_12, __pyx_t_6, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_14, 4+__pyx_t_14);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 980, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_3 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_3 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    index = 1; __pyx_t_4 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_2), 2) < 0) __PYX_ERR(0, 980, __pyx_L1_error)
    __pyx_t_13 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_13 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 980, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 981, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_12 = NULL;
  __pyx_t_14 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_14 = 1;
    }
  }
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_12, __pyx_t_6, __pyx_t_2, __pyx_t_4, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_14, 4+__pyx_t_14);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 980, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_3 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_4);
    #else
    __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_3 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    index = 1; __pyx_t_4 = __pyx_t_13(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_2), 2) < 0) __PYX_ERR(0, 980, __pyx_L1_error)
    __pyx_t_13 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_13 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 980, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
 982: 
+983:     for i in range(len(bri)):
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 983, __pyx_L1_error)
  __pyx_t_16 = __pyx_t_1;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_i = __pyx_t_17;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 983, __pyx_L1_error)
  __pyx_t_16 = __pyx_t_1;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_i = __pyx_t_17;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 983, __pyx_L1_error)
  __pyx_t_16 = __pyx_t_1;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_i = __pyx_t_17;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 983, __pyx_L1_error)
  __pyx_t_16 = __pyx_t_1;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_i = __pyx_t_17;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 983, __pyx_L1_error)
  __pyx_t_16 = __pyx_t_1;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_i = __pyx_t_17;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 983, __pyx_L1_error)
  __pyx_t_16 = __pyx_t_1;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_i = __pyx_t_17;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 983, __pyx_L1_error)
  __pyx_t_16 = __pyx_t_1;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_i = __pyx_t_17;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 983, __pyx_L1_error)
  __pyx_t_16 = __pyx_t_1;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_i = __pyx_t_17;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 983, __pyx_L1_error)
  __pyx_t_16 = __pyx_t_1;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_i = __pyx_t_17;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 983, __pyx_L1_error)
  __pyx_t_16 = __pyx_t_1;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_i = __pyx_t_17;
 984:         # choose timestamp from right with smaller difference
+985:         if bri[i] != -1 and fri[i] != -1:
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 985, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_20) {
    } else {
      __pyx_t_18 = __pyx_t_20;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 985, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_18 = __pyx_t_20;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_18) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 985, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_20) {
    } else {
      __pyx_t_18 = __pyx_t_20;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 985, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_18 = __pyx_t_20;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_18) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 985, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_20) {
    } else {
      __pyx_t_18 = __pyx_t_20;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 985, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_18 = __pyx_t_20;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_18) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 985, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_20) {
    } else {
      __pyx_t_18 = __pyx_t_20;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 985, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_18 = __pyx_t_20;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_18) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 985, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_20) {
    } else {
      __pyx_t_18 = __pyx_t_20;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 985, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_18 = __pyx_t_20;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_18) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 985, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_20) {
    } else {
      __pyx_t_18 = __pyx_t_20;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 985, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_18 = __pyx_t_20;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_18) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 985, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_20) {
    } else {
      __pyx_t_18 = __pyx_t_20;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 985, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_18 = __pyx_t_20;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_18) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 985, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_20) {
    } else {
      __pyx_t_18 = __pyx_t_20;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 985, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_18 = __pyx_t_20;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_18) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 985, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_20) {
    } else {
      __pyx_t_18 = __pyx_t_20;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 985, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_18 = __pyx_t_20;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_18) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 985, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0);
    if (__pyx_t_20) {
    } else {
      __pyx_t_18 = __pyx_t_20;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 985, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1LL) != 0);
    __pyx_t_18 = __pyx_t_20;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_18) {
/* … */
      goto __pyx_L9;
    }
+986:             bdiff = left_values[bli[i]] - right_values[bri[i]]
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 986, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
+987:             fdiff = right_values[fri[i]] - left_values[fli[i]]
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_left_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_29 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_left_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_29 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_left_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_29 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_left_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_29 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_left_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_29 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_left_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_29 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_left_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_29 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_left_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_29 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_left_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((float *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))) - (*((float *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_29 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_26 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_26 < 0) {
        __pyx_t_26 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_26 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_26 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_27 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_27 < 0) {
        __pyx_t_27 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_27 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_27 >= __pyx_v_right_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_28 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_28 < 0) {
        __pyx_t_28 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_28 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_28 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_t_29 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_15 = -1;
      if (__pyx_t_29 < 0) {
        __pyx_t_29 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_29 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_29 >= __pyx_v_left_values.shape[0])) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_27 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_29 * __pyx_v_left_values.strides[0]) ))));
+988:             right_indexer[i] = bri[i] if bdiff <= fdiff else fri[i]
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_31 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 988, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_32 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_32 < 0) {
          __pyx_t_32 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_32 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_32 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 988, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_33 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_33 < 0) {
        __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_33 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 988, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_30;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_31 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 988, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_32 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_32 < 0) {
          __pyx_t_32 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_32 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_32 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 988, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_33 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_33 < 0) {
        __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_33 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 988, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_30;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_31 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 988, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_32 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_32 < 0) {
          __pyx_t_32 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_32 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_32 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 988, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_33 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_33 < 0) {
        __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_33 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 988, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_30;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_31 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 988, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_32 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_32 < 0) {
          __pyx_t_32 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_32 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_32 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 988, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_33 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_33 < 0) {
        __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_33 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 988, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_30;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_31 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 988, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_32 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_32 < 0) {
          __pyx_t_32 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_32 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_32 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 988, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_33 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_33 < 0) {
        __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_33 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 988, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_30;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_31 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 988, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_32 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_32 < 0) {
          __pyx_t_32 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_32 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_32 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 988, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_33 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_33 < 0) {
        __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_33 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 988, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_30;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_31 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 988, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_32 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_32 < 0) {
          __pyx_t_32 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_32 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_32 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 988, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_33 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_33 < 0) {
        __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_33 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 988, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_30;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_31 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 988, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_32 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_32 < 0) {
          __pyx_t_32 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_32 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_32 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 988, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_33 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_33 < 0) {
        __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_33 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 988, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_30;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_31 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 988, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_32 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_32 < 0) {
          __pyx_t_32 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_32 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_32 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 988, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_33 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_33 < 0) {
        __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_33 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 988, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_30;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_31 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_31 < 0) {
          __pyx_t_31 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_31 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_31 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 988, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_32 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_32 < 0) {
          __pyx_t_32 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_32 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_32 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 988, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_33 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_33 < 0) {
        __pyx_t_33 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_33 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_33 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 988, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_30;
 989:         else:
+990:             right_indexer[i] = bri[i] if bri[i] != -1 else fri[i]
    /*else*/ {
      __pyx_t_34 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_34 < 0) {
        __pyx_t_34 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_34 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 990, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_35 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_35 < 0) {
          __pyx_t_35 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_35 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 990, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_36 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_36 < 0) {
          __pyx_t_36 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_36 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 990, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_37 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_37 < 0) {
        __pyx_t_37 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_37 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 990, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_30;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_34 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_34 < 0) {
        __pyx_t_34 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_34 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 990, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_35 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_35 < 0) {
          __pyx_t_35 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_35 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 990, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_36 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_36 < 0) {
          __pyx_t_36 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_36 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 990, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_37 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_37 < 0) {
        __pyx_t_37 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_37 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 990, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_30;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_34 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_34 < 0) {
        __pyx_t_34 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_34 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 990, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_35 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_35 < 0) {
          __pyx_t_35 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_35 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 990, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_36 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_36 < 0) {
          __pyx_t_36 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_36 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 990, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_37 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_37 < 0) {
        __pyx_t_37 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_37 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 990, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_30;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_34 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_34 < 0) {
        __pyx_t_34 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_34 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 990, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_35 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_35 < 0) {
          __pyx_t_35 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_35 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 990, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_36 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_36 < 0) {
          __pyx_t_36 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_36 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 990, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_37 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_37 < 0) {
        __pyx_t_37 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_37 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 990, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_30;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_34 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_34 < 0) {
        __pyx_t_34 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_34 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 990, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_35 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_35 < 0) {
          __pyx_t_35 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_35 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 990, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_36 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_36 < 0) {
          __pyx_t_36 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_36 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 990, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_37 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_37 < 0) {
        __pyx_t_37 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_37 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 990, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_30;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_34 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_34 < 0) {
        __pyx_t_34 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_34 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 990, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_35 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_35 < 0) {
          __pyx_t_35 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_35 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 990, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_36 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_36 < 0) {
          __pyx_t_36 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_36 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 990, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_37 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_37 < 0) {
        __pyx_t_37 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_37 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 990, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_30;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_34 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_34 < 0) {
        __pyx_t_34 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_34 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 990, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_35 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_35 < 0) {
          __pyx_t_35 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_35 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 990, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_36 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_36 < 0) {
          __pyx_t_36 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_36 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 990, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_37 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_37 < 0) {
        __pyx_t_37 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_37 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 990, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_30;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_34 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_34 < 0) {
        __pyx_t_34 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_34 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 990, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_35 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_35 < 0) {
          __pyx_t_35 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_35 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 990, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_36 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_36 < 0) {
          __pyx_t_36 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_36 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 990, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_37 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_37 < 0) {
        __pyx_t_37 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_37 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 990, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_30;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_34 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_34 < 0) {
        __pyx_t_34 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_34 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 990, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_35 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_35 < 0) {
          __pyx_t_35 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_35 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 990, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_36 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_36 < 0) {
          __pyx_t_36 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_36 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 990, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_37 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_37 < 0) {
        __pyx_t_37 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_37 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 990, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_30;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_34 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_34 < 0) {
        __pyx_t_34 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_34 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_34 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 990, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_34, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1LL) != 0)) {
        __pyx_t_35 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_35 < 0) {
          __pyx_t_35 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_35 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_35 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 990, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_36 = __pyx_v_i;
        __pyx_t_15 = -1;
        if (__pyx_t_36 < 0) {
          __pyx_t_36 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_36 < 0)) __pyx_t_15 = 0;
        } else if (unlikely(__pyx_t_36 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_15 = 0;
        if (unlikely(__pyx_t_15 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_15);
          __PYX_ERR(0, 990, __pyx_L1_error)
        }
        __pyx_t_30 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_37 = __pyx_v_i;
      __pyx_t_15 = -1;
      if (__pyx_t_37 < 0) {
        __pyx_t_37 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_37 < 0)) __pyx_t_15 = 0;
      } else if (unlikely(__pyx_t_37 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
      if (unlikely(__pyx_t_15 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_15);
        __PYX_ERR(0, 990, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_30;
    }
    __pyx_L9:;
+991:         left_indexer[i] = bli[i]
    __pyx_t_38 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_38 < 0) {
      __pyx_t_38 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_38 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    __pyx_t_39 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_39 < 0) {
      __pyx_t_39 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_39 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_38 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_38 < 0) {
      __pyx_t_38 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_38 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    __pyx_t_39 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_39 < 0) {
      __pyx_t_39 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_39 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_38 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_38 < 0) {
      __pyx_t_38 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_38 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    __pyx_t_39 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_39 < 0) {
      __pyx_t_39 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_39 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_38 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_38 < 0) {
      __pyx_t_38 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_38 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    __pyx_t_39 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_39 < 0) {
      __pyx_t_39 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_39 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_38 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_38 < 0) {
      __pyx_t_38 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_38 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    __pyx_t_39 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_39 < 0) {
      __pyx_t_39 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_39 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_38 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_38 < 0) {
      __pyx_t_38 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_38 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    __pyx_t_39 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_39 < 0) {
      __pyx_t_39 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_39 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_38 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_38 < 0) {
      __pyx_t_38 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_38 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    __pyx_t_39 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_39 < 0) {
      __pyx_t_39 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_39 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_38 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_38 < 0) {
      __pyx_t_38 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_38 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    __pyx_t_39 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_39 < 0) {
      __pyx_t_39 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_39 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_38 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_38 < 0) {
      __pyx_t_38 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_38 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    __pyx_t_39 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_39 < 0) {
      __pyx_t_39 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_39 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_38 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_38 < 0) {
      __pyx_t_38 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_38 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_38 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    __pyx_t_39 = __pyx_v_i;
    __pyx_t_15 = -1;
    if (__pyx_t_39 < 0) {
      __pyx_t_39 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_39 < 0)) __pyx_t_15 = 0;
    } else if (unlikely(__pyx_t_39 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_15 = 0;
    if (unlikely(__pyx_t_15 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_15);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
 992: 
+993:     return left_indexer, right_indexer
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_left_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_GIVEREF((PyObject *)__pyx_v_right_indexer);
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;