Generated by Cython 0.17.1 on Tue Dec 11 13:42:42 2012

Raw output: splitPixel.c

 1: #!/usr/bin/env python
  /* "splitPixel.pyx":1
 * #!/usr/bin/env python             # <<<<<<<<<<<<<<
 * # -*- coding: utf-8 -*-
 * #
 */
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s____test__, ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
 2: # -*- coding: utf-8 -*-
 3: #
 4: #    Project: Azimuthal integration
 5: #             https://forge.epn-campus.eu/projects/azimuthal
 6: #
 7: #    File: "$Id$"
 8: #
 9: #    Copyright (C) European Synchrotron Radiation Facility, Grenoble, France
 10: #
 11: #    Principal author:       Jérôme Kieffer (Jerome.Kieffer@ESRF.eu)
 12: #
 13: #    This program is free software: you can redistribute it and/or modify
 14: #    it under the terms of the GNU General Public License as published by
 15: #    the Free Software Foundation, either version 3 of the License, or
 16: #    (at your option) any later version.
 17: #
 18: #    This program is distributed in the hope that it will be useful,
 19: #    but WITHOUT ANY WARRANTY; without even the implied warranty of
 20: #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 21: #    GNU General Public License for more details.
 22: #
 23: #    You should have received a copy of the GNU General Public License
 24: #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 25: #
 26: 
 27: 
 28: import cython
 29: cimport numpy
 30: import numpy
  /* "splitPixel.pyx":30
 * import cython
 * cimport numpy
 * import numpy             # <<<<<<<<<<<<<<
 * from libc.math cimport fabs
 * 
 */
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__numpy), 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__numpy, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 31: from libc.math cimport fabs
 32: 
 33: #cdef double areaTriangle(double a0,
 34: #                         double a1,
 35: #                         double b0,
 36: #                         double b1,
 37: #                         double c0,
 38: #                         double c1):
 39: #    """
 40: #    Calculate the area of the ABC triangle with corners:
 41: #    A(a0,a1)
 42: #    B(b0,b1)
 43: #    C(c0,c1)
 44: #    @return: area, i.e. 1/2 * (B-A)^(C-A)
 45: #    """
 46: #    return 0.5 * abs(((b0 - a0) * (c1 - a1)) - ((b1 - a1) * (c0 - a0)))
 47: #
 48: #cdef double areaQuad(double a0,
 49: #                     double a1,
 50: #                     double b0,
 51: #                     double b1,
 52: #                     double c0,
 53: #                     double c1,
 54: #                     double d0,
 55: #                     double d1
 56: #                     ):
 57: #    """
 58: #    Calculate the area of the ABCD quadrilataire  with corners:
 59: #    A(a0,a1)
 60: #    B(b0,b1)
 61: #    C(c0,c1)
 62: #    D(d0,d1)
 63: #    @return: area, i.e. 1/2 * (AC ^ BD)
 64: #    """
 65: #    return 0.5 * abs(((c0 - a0) * (d1 - b1)) - ((c1 - a1) * (d0 - b0)))
 66: 
 67: @cython.cdivision(True)
 68: cdef double  getBinNr(double x0, double pos0_min, double dpos) nogil:
/* "splitPixel.pyx":68
 * 
 * @cython.cdivision(True)
 * cdef double  getBinNr(double x0, double pos0_min, double dpos) nogil:             # <<<<<<<<<<<<<<
 *     """
 *     calculate the bin number for any point
 */

static double __pyx_f_10splitPixel_getBinNr(double __pyx_v_x0, double __pyx_v_pos0_min, double __pyx_v_dpos) {
  double __pyx_r;
 69:     """
 70:     calculate the bin number for any point
 71:     param x0: current position
 72:     param pos0_min: position minimum
 73:     param dpos: bin width
 74:     """
 75:     return (x0 - pos0_min) / dpos
  /* "splitPixel.pyx":75
 *     param dpos: bin width
 *     """
 *     return (x0 - pos0_min) / dpos             # <<<<<<<<<<<<<<
 * 
 * cdef double min4f(double a, double b, double c, double d) nogil:
 */
  __pyx_r = ((__pyx_v_x0 - __pyx_v_pos0_min) / __pyx_v_dpos);
  goto __pyx_L0;

  __pyx_r = 0;
  __pyx_L0:;
  return __pyx_r;
}
 76: 
 77: cdef double min4f(double a, double b, double c, double d) nogil:
/* "splitPixel.pyx":77
 *     return (x0 - pos0_min) / dpos
 * 
 * cdef double min4f(double a, double b, double c, double d) nogil:             # <<<<<<<<<<<<<<
 *     if (a <= b) and (a <= c) and (a <= d):
 *         return a
 */

static double __pyx_f_10splitPixel_min4f(double __pyx_v_a, double __pyx_v_b, double __pyx_v_c, double __pyx_v_d) {
  double __pyx_r;
 78:     if (a <= b) and (a <= c) and (a <= d):
  /* "splitPixel.pyx":78
 * 
 * cdef double min4f(double a, double b, double c, double d) nogil:
 *     if (a <= b) and (a <= c) and (a <= d):             # <<<<<<<<<<<<<<
 *         return a
 *     if (b <= a) and (b <= c) and (b <= d):
 */
  __pyx_t_1 = (__pyx_v_a <= __pyx_v_b);
  if (__pyx_t_1) {
    __pyx_t_2 = (__pyx_v_a <= __pyx_v_c);
    if (__pyx_t_2) {
      __pyx_t_3 = (__pyx_v_a <= __pyx_v_d);
      __pyx_t_4 = __pyx_t_3;
    } else {
      __pyx_t_4 = __pyx_t_2;
    }
    __pyx_t_2 = __pyx_t_4;
  } else {
    __pyx_t_2 = __pyx_t_1;
  }
  if (__pyx_t_2) {
 79:         return a
    /* "splitPixel.pyx":79
 * cdef double min4f(double a, double b, double c, double d) nogil:
 *     if (a <= b) and (a <= c) and (a <= d):
 *         return a             # <<<<<<<<<<<<<<
 *     if (b <= a) and (b <= c) and (b <= d):
 *         return b
 */
    __pyx_r = __pyx_v_a;
    goto __pyx_L0;
    goto __pyx_L3;
  }
  __pyx_L3:;
 80:     if (b <= a) and (b <= c) and (b <= d):
  /* "splitPixel.pyx":80
 *     if (a <= b) and (a <= c) and (a <= d):
 *         return a
 *     if (b <= a) and (b <= c) and (b <= d):             # <<<<<<<<<<<<<<
 *         return b
 *     if (c <= a) and (c <= b) and (c <= d):
 */
  __pyx_t_2 = (__pyx_v_b <= __pyx_v_a);
  if (__pyx_t_2) {
    __pyx_t_1 = (__pyx_v_b <= __pyx_v_c);
    if (__pyx_t_1) {
      __pyx_t_4 = (__pyx_v_b <= __pyx_v_d);
      __pyx_t_3 = __pyx_t_4;
    } else {
      __pyx_t_3 = __pyx_t_1;
    }
    __pyx_t_1 = __pyx_t_3;
  } else {
    __pyx_t_1 = __pyx_t_2;
  }
  if (__pyx_t_1) {
 81:         return b
    /* "splitPixel.pyx":81
 *         return a
 *     if (b <= a) and (b <= c) and (b <= d):
 *         return b             # <<<<<<<<<<<<<<
 *     if (c <= a) and (c <= b) and (c <= d):
 *         return c
 */
    __pyx_r = __pyx_v_b;
    goto __pyx_L0;
    goto __pyx_L4;
  }
  __pyx_L4:;
 82:     if (c <= a) and (c <= b) and (c <= d):
  /* "splitPixel.pyx":82
 *     if (b <= a) and (b <= c) and (b <= d):
 *         return b
 *     if (c <= a) and (c <= b) and (c <= d):             # <<<<<<<<<<<<<<
 *         return c
 *     else:
 */
  __pyx_t_1 = (__pyx_v_c <= __pyx_v_a);
  if (__pyx_t_1) {
    __pyx_t_2 = (__pyx_v_c <= __pyx_v_b);
    if (__pyx_t_2) {
      __pyx_t_3 = (__pyx_v_c <= __pyx_v_d);
      __pyx_t_4 = __pyx_t_3;
    } else {
      __pyx_t_4 = __pyx_t_2;
    }
    __pyx_t_2 = __pyx_t_4;
  } else {
    __pyx_t_2 = __pyx_t_1;
  }
  if (__pyx_t_2) {
 83:         return c
    /* "splitPixel.pyx":83
 *         return b
 *     if (c <= a) and (c <= b) and (c <= d):
 *         return c             # <<<<<<<<<<<<<<
 *     else:
 *         return d
 */
    __pyx_r = __pyx_v_c;
    goto __pyx_L0;
    goto __pyx_L5;
  }
  /*else*/ {
 84:     else:
 85:         return d
    /* "splitPixel.pyx":85
 *         return c
 *     else:
 *         return d             # <<<<<<<<<<<<<<
 * 
 * cdef double max4f(double a, double b, double c, double d) nogil:
 */
    __pyx_r = __pyx_v_d;
    goto __pyx_L0;
  }
  __pyx_L5:;

  __pyx_r = 0;
  __pyx_L0:;
  return __pyx_r;
}
 86: 
 87: cdef double max4f(double a, double b, double c, double d) nogil:
/* "splitPixel.pyx":87
 *         return d
 * 
 * cdef double max4f(double a, double b, double c, double d) nogil:             # <<<<<<<<<<<<<<
 *     """Calculates the max of 4 double numbers"""
 *     if (a >= b) and (a >= c) and (a >= d):
 */

static double __pyx_f_10splitPixel_max4f(double __pyx_v_a, double __pyx_v_b, double __pyx_v_c, double __pyx_v_d) {
  double __pyx_r;
 88:     """Calculates the max of 4 double numbers"""
 89:     if (a >= b) and (a >= c) and (a >= d):
  /* "splitPixel.pyx":89
 * cdef double max4f(double a, double b, double c, double d) nogil:
 *     """Calculates the max of 4 double numbers"""
 *     if (a >= b) and (a >= c) and (a >= d):             # <<<<<<<<<<<<<<
 *         return a
 *     if (b >= a) and (b >= c) and (b >= d):
 */
  __pyx_t_1 = (__pyx_v_a >= __pyx_v_b);
  if (__pyx_t_1) {
    __pyx_t_2 = (__pyx_v_a >= __pyx_v_c);
    if (__pyx_t_2) {
      __pyx_t_3 = (__pyx_v_a >= __pyx_v_d);
      __pyx_t_4 = __pyx_t_3;
    } else {
      __pyx_t_4 = __pyx_t_2;
    }
    __pyx_t_2 = __pyx_t_4;
  } else {
    __pyx_t_2 = __pyx_t_1;
  }
  if (__pyx_t_2) {
 90:         return a
    /* "splitPixel.pyx":90
 *     """Calculates the max of 4 double numbers"""
 *     if (a >= b) and (a >= c) and (a >= d):
 *         return a             # <<<<<<<<<<<<<<
 *     if (b >= a) and (b >= c) and (b >= d):
 *         return b
 */
    __pyx_r = __pyx_v_a;
    goto __pyx_L0;
    goto __pyx_L3;
  }
  __pyx_L3:;
 91:     if (b >= a) and (b >= c) and (b >= d):
  /* "splitPixel.pyx":91
 *     if (a >= b) and (a >= c) and (a >= d):
 *         return a
 *     if (b >= a) and (b >= c) and (b >= d):             # <<<<<<<<<<<<<<
 *         return b
 *     if (c >= a) and (c >= b) and (c >= d):
 */
  __pyx_t_2 = (__pyx_v_b >= __pyx_v_a);
  if (__pyx_t_2) {
    __pyx_t_1 = (__pyx_v_b >= __pyx_v_c);
    if (__pyx_t_1) {
      __pyx_t_4 = (__pyx_v_b >= __pyx_v_d);
      __pyx_t_3 = __pyx_t_4;
    } else {
      __pyx_t_3 = __pyx_t_1;
    }
    __pyx_t_1 = __pyx_t_3;
  } else {
    __pyx_t_1 = __pyx_t_2;
  }
  if (__pyx_t_1) {
 92:         return b
    /* "splitPixel.pyx":92
 *         return a
 *     if (b >= a) and (b >= c) and (b >= d):
 *         return b             # <<<<<<<<<<<<<<
 *     if (c >= a) and (c >= b) and (c >= d):
 *         return c
 */
    __pyx_r = __pyx_v_b;
    goto __pyx_L0;
    goto __pyx_L4;
  }
  __pyx_L4:;
 93:     if (c >= a) and (c >= b) and (c >= d):
  /* "splitPixel.pyx":93
 *     if (b >= a) and (b >= c) and (b >= d):
 *         return b
 *     if (c >= a) and (c >= b) and (c >= d):             # <<<<<<<<<<<<<<
 *         return c
 *     else:
 */
  __pyx_t_1 = (__pyx_v_c >= __pyx_v_a);
  if (__pyx_t_1) {
    __pyx_t_2 = (__pyx_v_c >= __pyx_v_b);
    if (__pyx_t_2) {
      __pyx_t_3 = (__pyx_v_c >= __pyx_v_d);
      __pyx_t_4 = __pyx_t_3;
    } else {
      __pyx_t_4 = __pyx_t_2;
    }
    __pyx_t_2 = __pyx_t_4;
  } else {
    __pyx_t_2 = __pyx_t_1;
  }
  if (__pyx_t_2) {
 94:         return c
    /* "splitPixel.pyx":94
 *         return b
 *     if (c >= a) and (c >= b) and (c >= d):
 *         return c             # <<<<<<<<<<<<<<
 *     else:
 *         return d
 */
    __pyx_r = __pyx_v_c;
    goto __pyx_L0;
    goto __pyx_L5;
  }
  /*else*/ {
 95:     else:
 96:         return d
    /* "splitPixel.pyx":96
 *         return c
 *     else:
 *         return d             # <<<<<<<<<<<<<<
 * 
 * @cython.cdivision(True)
 */
    __pyx_r = __pyx_v_d;
    goto __pyx_L0;
  }
  __pyx_L5:;

  __pyx_r = 0;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_10splitPixel_1fullSplit1D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_10splitPixel_fullSplit1D[] = "\n    Calculates histogram of pos weighted by weights\n\n    Splitting is done on the pixel's bounding box like fit2D.\n    No compromise for speed has been made here.\n\n\n    @param pos: 3D array with pos0; Corner A,B,C,D; tth or chi\n    @param weights: array with intensities\n    @param bins: number of output bins\n    @param pos0Range: minimum and maximum  of the 2th range\n    @param pos1Range: minimum and maximum  of the chi range\n    @param dummy: value for bins without pixels\n    @param delta_dummy: precision of dummy value\n    @param mask: array (of int8) with masked pixels with 1 (0=not masked)\n    @param dark: array (of float64) with dark noise to be subtracted (or None)\n    @param flat: array (of float64) with flat image\n    @param polarization: array (of float64) with polarization correction\n    @param solidangle: array (of float64) with flat image\n    @return 2theta, I, weighted histogram, unweighted histogram\n    ";
static PyMethodDef __pyx_mdef_10splitPixel_1fullSplit1D = {__Pyx_NAMESTR("fullSplit1D"), (PyCFunction)__pyx_pw_10splitPixel_1fullSplit1D, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_10splitPixel_fullSplit1D)};
static PyObject *__pyx_pw_10splitPixel_1fullSplit1D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_pos = 0;
  PyArrayObject *__pyx_v_weights = 0;
  size_t __pyx_v_bins;
  PyObject *__pyx_v_pos0Range = 0;
  PyObject *__pyx_v_pos1Range = 0;
  PyObject *__pyx_v_dummy = 0;
  PyObject *__pyx_v_delta_dummy = 0;
  PyObject *__pyx_v_mask = 0;
  PyObject *__pyx_v_dark = 0;
  PyObject *__pyx_v_flat = 0;
  PyObject *__pyx_v_solidangle = 0;
  PyObject *__pyx_v_polarization = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("fullSplit1D (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__pos,&__pyx_n_s__weights,&__pyx_n_s__bins,&__pyx_n_s__pos0Range,&__pyx_n_s__pos1Range,&__pyx_n_s__dummy,&__pyx_n_s__delta_dummy,&__pyx_n_s__mask,&__pyx_n_s__dark,&__pyx_n_s__flat,&__pyx_n_s__solidangle,&__pyx_n_s__polarization,0};
    PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
 97: 
 98: @cython.cdivision(True)
 99: @cython.boundscheck(False)
 100: @cython.wraparound(False)
 101: def fullSplit1D(numpy.ndarray pos not None,
/* "splitPixel.pyx":101
 * @cython.boundscheck(False)
 * @cython.wraparound(False)
 * def fullSplit1D(numpy.ndarray pos not None,             # <<<<<<<<<<<<<<
 *                 numpy.ndarray weights not None,
 *                 size_t bins=100,
 */

static PyObject *__pyx_pf_10splitPixel_fullSplit1D(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_pos, PyArrayObject *__pyx_v_weights, size_t __pyx_v_bins, PyObject *__pyx_v_pos0Range, PyObject *__pyx_v_pos1Range, PyObject *__pyx_v_dummy, PyObject *__pyx_v_delta_dummy, PyObject *__pyx_v_mask, PyObject *__pyx_v_dark, PyObject *__pyx_v_flat, PyObject *__pyx_v_solidangle, PyObject *__pyx_v_polarization) {
  size_t __pyx_v_size;
  PyArrayObject *__pyx_v_cpos = 0;
  PyArrayObject *__pyx_v_cdata = 0;
  PyArrayObject *__pyx_v_outData = 0;
  PyArrayObject *__pyx_v_outCount = 0;
  PyArrayObject *__pyx_v_outMerge = 0;
  __Pyx_memviewslice __pyx_v_cmask = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_cflat = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_cdark = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_cpolarization = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_csolidangle = { 0, 0, { 0 }, { 0 }, { 0 } };
  double __pyx_v_cdummy;
  double __pyx_v_cddummy;
  double __pyx_v_data;
  double __pyx_v_deltaR;
  double __pyx_v_deltaL;
  double __pyx_v_deltaA;
  double __pyx_v_pos0_min;
  double __pyx_v_pos0_max;
  double __pyx_v_pos0_maxin;
  double __pyx_v_pos1_min;
  CYTHON_UNUSED double __pyx_v_pos1_max;
  double __pyx_v_pos1_maxin;
  double __pyx_v_aeraPixel;
  double __pyx_v_dpos;
  double __pyx_v_fbin0_min;
  double __pyx_v_fbin0_max;
  double __pyx_v_a0;
  double __pyx_v_b0;
  double __pyx_v_c0;
  double __pyx_v_d0;
  double __pyx_v_max0;
  double __pyx_v_min0;
  double __pyx_v_a1;
  double __pyx_v_b1;
  double __pyx_v_c1;
  double __pyx_v_d1;
  double __pyx_v_max1;
  double __pyx_v_min1;
  double __pyx_v_epsilon;
  int __pyx_v_check_pos1;
  int __pyx_v_check_mask;
  CYTHON_UNUSED int __pyx_v_do_dummy;
  int __pyx_v_do_dark;
  int __pyx_v_do_flat;
  int __pyx_v_do_polarization;
  int __pyx_v_do_solidangle;
  size_t __pyx_v_i;
  size_t __pyx_v_idx;
  CYTHON_UNUSED size_t __pyx_v_bin;
  size_t __pyx_v_bin0_max;
  size_t __pyx_v_bin0_min;
  CYTHON_UNUSED int __pyx_v_do_pos1;
  PyObject *__pyx_v_outPos = NULL;
  int __pyx_v_check_dummy;
  double __pyx_v_tmp;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_cdata;
  __Pyx_Buffer __pyx_pybuffer_cdata;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_cpos;
  __Pyx_Buffer __pyx_pybuffer_cpos;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_outCount;
  __Pyx_Buffer __pyx_pybuffer_outCount;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_outData;
  __Pyx_Buffer __pyx_pybuffer_outData;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_outMerge;
  __Pyx_Buffer __pyx_pybuffer_outMerge;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("fullSplit1D", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_pos);
  __pyx_pybuffer_cpos.pybuffer.buf = NULL;
  __pyx_pybuffer_cpos.refcount = 0;
  __pyx_pybuffernd_cpos.data = NULL;
  __pyx_pybuffernd_cpos.rcbuffer = &__pyx_pybuffer_cpos;
  __pyx_pybuffer_cdata.pybuffer.buf = NULL;
  __pyx_pybuffer_cdata.refcount = 0;
  __pyx_pybuffernd_cdata.data = NULL;
  __pyx_pybuffernd_cdata.rcbuffer = &__pyx_pybuffer_cdata;
  __pyx_pybuffer_outData.pybuffer.buf = NULL;
  __pyx_pybuffer_outData.refcount = 0;
  __pyx_pybuffernd_outData.data = NULL;
  __pyx_pybuffernd_outData.rcbuffer = &__pyx_pybuffer_outData;
  __pyx_pybuffer_outCount.pybuffer.buf = NULL;
  __pyx_pybuffer_outCount.refcount = 0;
  __pyx_pybuffernd_outCount.data = NULL;
  __pyx_pybuffernd_outCount.rcbuffer = &__pyx_pybuffer_outCount;
  __pyx_pybuffer_outMerge.pybuffer.buf = NULL;
  __pyx_pybuffer_outMerge.refcount = 0;
  __pyx_pybuffernd_outMerge.data = NULL;
  __pyx_pybuffernd_outMerge.rcbuffer = &__pyx_pybuffer_outMerge;

  /* "splitPixel.pyx":101
 * @cython.boundscheck(False)
 * @cython.wraparound(False)
 * def fullSplit1D(numpy.ndarray pos not None,             # <<<<<<<<<<<<<<
 *                 numpy.ndarray weights not None,
 *                 size_t bins=100,
 */
  __pyx_k_tuple_74 = PyTuple_New(68); if (unlikely(!__pyx_k_tuple_74)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_tuple_74);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__pos));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 0, ((PyObject *)__pyx_n_s__pos));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pos));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__weights));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 1, ((PyObject *)__pyx_n_s__weights));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__weights));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__bins));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 2, ((PyObject *)__pyx_n_s__bins));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__bins));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__pos0Range));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 3, ((PyObject *)__pyx_n_s__pos0Range));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pos0Range));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__pos1Range));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 4, ((PyObject *)__pyx_n_s__pos1Range));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pos1Range));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__dummy));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 5, ((PyObject *)__pyx_n_s__dummy));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__dummy));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__delta_dummy));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 6, ((PyObject *)__pyx_n_s__delta_dummy));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__delta_dummy));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__mask));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 7, ((PyObject *)__pyx_n_s__mask));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__mask));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__dark));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 8, ((PyObject *)__pyx_n_s__dark));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__dark));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__flat));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 9, ((PyObject *)__pyx_n_s__flat));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__flat));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__solidangle));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 10, ((PyObject *)__pyx_n_s__solidangle));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__solidangle));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__polarization));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 11, ((PyObject *)__pyx_n_s__polarization));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__polarization));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__size));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 12, ((PyObject *)__pyx_n_s__size));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__size));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__cpos));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 13, ((PyObject *)__pyx_n_s__cpos));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__cpos));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__cdata));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 14, ((PyObject *)__pyx_n_s__cdata));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__cdata));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__outData));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 15, ((PyObject *)__pyx_n_s__outData));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__outData));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__outCount));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 16, ((PyObject *)__pyx_n_s__outCount));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__outCount));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__outMerge));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 17, ((PyObject *)__pyx_n_s__outMerge));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__outMerge));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__cmask));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 18, ((PyObject *)__pyx_n_s__cmask));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__cmask));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__cflat));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 19, ((PyObject *)__pyx_n_s__cflat));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__cflat));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__cdark));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 20, ((PyObject *)__pyx_n_s__cdark));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__cdark));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__cpolarization));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 21, ((PyObject *)__pyx_n_s__cpolarization));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__cpolarization));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__csolidangle));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 22, ((PyObject *)__pyx_n_s__csolidangle));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__csolidangle));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__cdummy));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 23, ((PyObject *)__pyx_n_s__cdummy));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__cdummy));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__cddummy));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 24, ((PyObject *)__pyx_n_s__cddummy));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__cddummy));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__data));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 25, ((PyObject *)__pyx_n_s__data));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__data));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__deltaR));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 26, ((PyObject *)__pyx_n_s__deltaR));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__deltaR));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__deltaL));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 27, ((PyObject *)__pyx_n_s__deltaL));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__deltaL));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__deltaA));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 28, ((PyObject *)__pyx_n_s__deltaA));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__deltaA));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__pos0_min));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 29, ((PyObject *)__pyx_n_s__pos0_min));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pos0_min));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__pos0_max));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 30, ((PyObject *)__pyx_n_s__pos0_max));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pos0_max));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__pos0_maxin));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 31, ((PyObject *)__pyx_n_s__pos0_maxin));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pos0_maxin));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__pos1_min));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 32, ((PyObject *)__pyx_n_s__pos1_min));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pos1_min));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__pos1_max));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 33, ((PyObject *)__pyx_n_s__pos1_max));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pos1_max));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__pos1_maxin));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 34, ((PyObject *)__pyx_n_s__pos1_maxin));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pos1_maxin));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__aeraPixel));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 35, ((PyObject *)__pyx_n_s__aeraPixel));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__aeraPixel));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__dpos));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 36, ((PyObject *)__pyx_n_s__dpos));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__dpos));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__fbin0_min));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 37, ((PyObject *)__pyx_n_s__fbin0_min));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__fbin0_min));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__fbin0_max));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 38, ((PyObject *)__pyx_n_s__fbin0_max));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__fbin0_max));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__a0));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 39, ((PyObject *)__pyx_n_s__a0));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__a0));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__b0));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 40, ((PyObject *)__pyx_n_s__b0));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__b0));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__c0));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 41, ((PyObject *)__pyx_n_s__c0));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__c0));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__d0));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 42, ((PyObject *)__pyx_n_s__d0));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__d0));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__max0));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 43, ((PyObject *)__pyx_n_s__max0));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__max0));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__min0));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 44, ((PyObject *)__pyx_n_s__min0));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__min0));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__a1));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 45, ((PyObject *)__pyx_n_s__a1));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__a1));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__b1));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 46, ((PyObject *)__pyx_n_s__b1));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__b1));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__c1));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 47, ((PyObject *)__pyx_n_s__c1));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__c1));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__d1));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 48, ((PyObject *)__pyx_n_s__d1));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__d1));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__max1));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 49, ((PyObject *)__pyx_n_s__max1));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__max1));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__min1));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 50, ((PyObject *)__pyx_n_s__min1));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__min1));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__epsilon));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 51, ((PyObject *)__pyx_n_s__epsilon));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__epsilon));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__check_pos1));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 52, ((PyObject *)__pyx_n_s__check_pos1));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__check_pos1));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__check_mask));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 53, ((PyObject *)__pyx_n_s__check_mask));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__check_mask));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__do_dummy));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 54, ((PyObject *)__pyx_n_s__do_dummy));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__do_dummy));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__do_dark));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 55, ((PyObject *)__pyx_n_s__do_dark));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__do_dark));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__do_flat));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 56, ((PyObject *)__pyx_n_s__do_flat));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__do_flat));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__do_polarization));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 57, ((PyObject *)__pyx_n_s__do_polarization));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__do_polarization));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__do_solidangle));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 58, ((PyObject *)__pyx_n_s__do_solidangle));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__do_solidangle));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__i));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 59, ((PyObject *)__pyx_n_s__i));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__i));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__idx));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 60, ((PyObject *)__pyx_n_s__idx));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__idx));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__bin));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 61, ((PyObject *)__pyx_n_s__bin));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__bin));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__bin0_max));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 62, ((PyObject *)__pyx_n_s__bin0_max));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__bin0_max));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__bin0_min));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 63, ((PyObject *)__pyx_n_s__bin0_min));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__bin0_min));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__do_pos1));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 64, ((PyObject *)__pyx_n_s__do_pos1));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__do_pos1));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__outPos));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 65, ((PyObject *)__pyx_n_s__outPos));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__outPos));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__check_dummy));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 66, ((PyObject *)__pyx_n_s__check_dummy));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__check_dummy));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__tmp));
  PyTuple_SET_ITEM(__pyx_k_tuple_74, 67, ((PyObject *)__pyx_n_s__tmp));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__tmp));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_74));

  /* "splitPixel.pyx":101
 * @cython.boundscheck(False)
 * @cython.wraparound(False)
 * def fullSplit1D(numpy.ndarray pos not None,             # <<<<<<<<<<<<<<
 *                 numpy.ndarray weights not None,
 *                 size_t bins=100,
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_10splitPixel_1fullSplit1D, NULL, __pyx_n_s__splitPixel); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__fullSplit1D, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_k_codeobj_75 = (PyObject*)__Pyx_PyCode_New(12, 0, 68, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_76, __pyx_n_s__fullSplit1D, 101, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_75)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 102:                 numpy.ndarray weights not None,
 103:                 size_t bins=100,
 104:                 pos0Range=None,
    /* "splitPixel.pyx":104
 *                 numpy.ndarray weights not None,
 *                 size_t bins=100,
 *                 pos0Range=None,             # <<<<<<<<<<<<<<
 *                 pos1Range=None,
 *                 dummy=None,
 */
    values[3] = ((PyObject *)Py_None);
 105:                 pos1Range=None,
    /* "splitPixel.pyx":105
 *                 size_t bins=100,
 *                 pos0Range=None,
 *                 pos1Range=None,             # <<<<<<<<<<<<<<
 *                 dummy=None,
 *                 delta_dummy=None,
 */
    values[4] = ((PyObject *)Py_None);
 106:                 dummy=None,
    /* "splitPixel.pyx":106
 *                 pos0Range=None,
 *                 pos1Range=None,
 *                 dummy=None,             # <<<<<<<<<<<<<<
 *                 delta_dummy=None,
 *                 mask=None,
 */
    values[5] = ((PyObject *)Py_None);
 107:                 delta_dummy=None,
    /* "splitPixel.pyx":107
 *                 pos1Range=None,
 *                 dummy=None,
 *                 delta_dummy=None,             # <<<<<<<<<<<<<<
 *                 mask=None,
 *                 dark=None,
 */
    values[6] = ((PyObject *)Py_None);
 108:                 mask=None,
    /* "splitPixel.pyx":108
 *                 dummy=None,
 *                 delta_dummy=None,
 *                 mask=None,             # <<<<<<<<<<<<<<
 *                 dark=None,
 *                 flat=None,
 */
    values[7] = ((PyObject *)Py_None);
 109:                 dark=None,
    /* "splitPixel.pyx":109
 *                 delta_dummy=None,
 *                 mask=None,
 *                 dark=None,             # <<<<<<<<<<<<<<
 *                 flat=None,
 *                 solidangle=None,
 */
    values[8] = ((PyObject *)Py_None);
 110:                 flat=None,
    /* "splitPixel.pyx":110
 *                 mask=None,
 *                 dark=None,
 *                 flat=None,             # <<<<<<<<<<<<<<
 *                 solidangle=None,
 *                 polarization=None
 */
    values[9] = ((PyObject *)Py_None);
 111:                 solidangle=None,
    /* "splitPixel.pyx":111
 *                 dark=None,
 *                 flat=None,
 *                 solidangle=None,             # <<<<<<<<<<<<<<
 *                 polarization=None
 *               ):
 */
    values[10] = ((PyObject *)Py_None);
 112:                 polarization=None
    /* "splitPixel.pyx":112
 *                 flat=None,
 *                 solidangle=None,
 *                 polarization=None             # <<<<<<<<<<<<<<
 *               ):
 *     """
 */
    values[11] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
        case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__pos)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__weights)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fullSplit1D", 0, 2, 12, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__bins);
          if (value) { values[2] = value; kw_args--; }
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__pos0Range);
          if (value) { values[3] = value; kw_args--; }
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__pos1Range);
          if (value) { values[4] = value; kw_args--; }
        }
        case  5:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dummy);
          if (value) { values[5] = value; kw_args--; }
        }
        case  6:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__delta_dummy);
          if (value) { values[6] = value; kw_args--; }
        }
        case  7:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__mask);
          if (value) { values[7] = value; kw_args--; }
        }
        case  8:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dark);
          if (value) { values[8] = value; kw_args--; }
        }
        case  9:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__flat);
          if (value) { values[9] = value; kw_args--; }
        }
        case 10:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__solidangle);
          if (value) { values[10] = value; kw_args--; }
        }
        case 11:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__polarization);
          if (value) { values[11] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fullSplit1D") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
        case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_pos = ((PyArrayObject *)values[0]);
    __pyx_v_weights = ((PyArrayObject *)values[1]);
    if (values[2]) {
      __pyx_v_bins = __Pyx_PyInt_AsSize_t(values[2]); if (unlikely((__pyx_v_bins == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_bins = ((size_t)100);
    }
    __pyx_v_pos0Range = values[3];
    __pyx_v_pos1Range = values[4];
    __pyx_v_dummy = values[5];
    __pyx_v_delta_dummy = values[6];
    __pyx_v_mask = values[7];
    __pyx_v_dark = values[8];
    __pyx_v_flat = values[9];
    __pyx_v_solidangle = values[10];
    __pyx_v_polarization = values[11];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("fullSplit1D", 0, 2, 12, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("splitPixel.fullSplit1D", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pos), __pyx_ptype_5numpy_ndarray, 0, "pos", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_weights), __pyx_ptype_5numpy_ndarray, 0, "weights", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_r = __pyx_pf_10splitPixel_fullSplit1D(__pyx_self, __pyx_v_pos, __pyx_v_weights, __pyx_v_bins, __pyx_v_pos0Range, __pyx_v_pos1Range, __pyx_v_dummy, __pyx_v_delta_dummy, __pyx_v_mask, __pyx_v_dark, __pyx_v_flat, __pyx_v_solidangle, __pyx_v_polarization);
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 113:               ):
 114:     """
 115:     Calculates histogram of pos weighted by weights
 116: 
 117:     Splitting is done on the pixel's bounding box like fit2D.
 118:     No compromise for speed has been made here.
 119: 
 120: 
 121:     @param pos: 3D array with pos0; Corner A,B,C,D; tth or chi
 122:     @param weights: array with intensities
 123:     @param bins: number of output bins
 124:     @param pos0Range: minimum and maximum  of the 2th range
 125:     @param pos1Range: minimum and maximum  of the chi range
 126:     @param dummy: value for bins without pixels
 127:     @param delta_dummy: precision of dummy value
 128:     @param mask: array (of int8) with masked pixels with 1 (0=not masked)
 129:     @param dark: array (of float64) with dark noise to be subtracted (or None)
 130:     @param flat: array (of float64) with flat image
 131:     @param polarization: array (of float64) with polarization correction
 132:     @param solidangle: array (of float64) with flat image
 133:     @return 2theta, I, weighted histogram, unweighted histogram
 134:     """
 135:     cdef size_t  size = weights.size
  /* "splitPixel.pyx":135
 *     @return 2theta, I, weighted histogram, unweighted histogram
 *     """
 *     cdef size_t  size = weights.size             # <<<<<<<<<<<<<<
 *     if pos.ndim>3: #create a view
 *         pos = pos.reshape((-1,4,2))
 */
  __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_weights), __pyx_n_s__size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_AsSize_t(__pyx_t_1); if (unlikely((__pyx_t_2 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_size = __pyx_t_2;
 136:     if pos.ndim>3: #create a view
  /* "splitPixel.pyx":136
 *     """
 *     cdef size_t  size = weights.size
 *     if pos.ndim>3: #create a view             # <<<<<<<<<<<<<<
 *         pos = pos.reshape((-1,4,2))
 *     assert pos.shape[0] == size
 */
  __pyx_t_3 = (__pyx_v_pos->nd > 3);
  if (__pyx_t_3) {
 137:         pos = pos.reshape((-1,4,2))
    /* "splitPixel.pyx":137
 *     cdef size_t  size = weights.size
 *     if pos.ndim>3: #create a view
 *         pos = pos.reshape((-1,4,2))             # <<<<<<<<<<<<<<
 *     assert pos.shape[0] == size
 *     assert pos.shape[1] == 4
 */
    __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_pos), __pyx_n_s__reshape); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);

  /* "splitPixel.pyx":137
 *     cdef size_t  size = weights.size
 *     if pos.ndim>3: #create a view
 *         pos = pos.reshape((-1,4,2))             # <<<<<<<<<<<<<<
 *     assert pos.shape[0] == size
 *     assert pos.shape[1] == 4
 */
  __pyx_k_tuple_1 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_tuple_1);
  __Pyx_INCREF(__pyx_int_neg_1);
  PyTuple_SET_ITEM(__pyx_k_tuple_1, 0, __pyx_int_neg_1);
  __Pyx_GIVEREF(__pyx_int_neg_1);
  __Pyx_INCREF(__pyx_int_4);
  PyTuple_SET_ITEM(__pyx_k_tuple_1, 1, __pyx_int_4);
  __Pyx_GIVEREF(__pyx_int_4);
  __Pyx_INCREF(__pyx_int_2);
  PyTuple_SET_ITEM(__pyx_k_tuple_1, 2, __pyx_int_2);
  __Pyx_GIVEREF(__pyx_int_2);
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_1));
    __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_2), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(((PyObject *)__pyx_v_pos));
    __pyx_v_pos = ((PyArrayObject *)__pyx_t_4);
    __pyx_t_4 = 0;
    goto __pyx_L3;
  }
  __pyx_L3:;
  __pyx_k_tuple_2 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_tuple_2);
  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_1));
  PyTuple_SET_ITEM(__pyx_k_tuple_2, 0, ((PyObject *)__pyx_k_tuple_1));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_1));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_2));
 138:     assert pos.shape[0] == size
  /* "splitPixel.pyx":138
 *     if pos.ndim>3: #create a view
 *         pos = pos.reshape((-1,4,2))
 *     assert pos.shape[0] == size             # <<<<<<<<<<<<<<
 *     assert pos.shape[1] == 4
 *     assert pos.shape[2] == 2
 */
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(!((__pyx_v_pos->dimensions[0]) == __pyx_v_size))) {
    PyErr_SetNone(PyExc_AssertionError);
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  #endif
 139:     assert pos.shape[1] == 4
  /* "splitPixel.pyx":139
 *         pos = pos.reshape((-1,4,2))
 *     assert pos.shape[0] == size
 *     assert pos.shape[1] == 4             # <<<<<<<<<<<<<<
 *     assert pos.shape[2] == 2
 *     assert pos.ndim == 3
 */
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(!((__pyx_v_pos->dimensions[1]) == 4))) {
    PyErr_SetNone(PyExc_AssertionError);
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  #endif
 140:     assert pos.shape[2] == 2
  /* "splitPixel.pyx":140
 *     assert pos.shape[0] == size
 *     assert pos.shape[1] == 4
 *     assert pos.shape[2] == 2             # <<<<<<<<<<<<<<
 *     assert pos.ndim == 3
 *     assert  bins > 1
 */
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(!((__pyx_v_pos->dimensions[2]) == 2))) {
    PyErr_SetNone(PyExc_AssertionError);
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  #endif
 141:     assert pos.ndim == 3
  /* "splitPixel.pyx":141
 *     assert pos.shape[1] == 4
 *     assert pos.shape[2] == 2
 *     assert pos.ndim == 3             # <<<<<<<<<<<<<<
 *     assert  bins > 1
 * 
 */
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(!(__pyx_v_pos->nd == 3))) {
    PyErr_SetNone(PyExc_AssertionError);
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  #endif
 142:     assert  bins > 1
  /* "splitPixel.pyx":142
 *     assert pos.shape[2] == 2
 *     assert pos.ndim == 3
 *     assert  bins > 1             # <<<<<<<<<<<<<<
 * 
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 3] cpos = numpy.ascontiguousarray(pos,dtype=numpy.float64)
 */
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(!(__pyx_v_bins > 1))) {
    PyErr_SetNone(PyExc_AssertionError);
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  #endif
 143: 
 144:     cdef numpy.ndarray[numpy.float64_t, ndim = 3] cpos = numpy.ascontiguousarray(pos,dtype=numpy.float64)
  /* "splitPixel.pyx":144
 *     assert  bins > 1
 * 
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 3] cpos = numpy.ascontiguousarray(pos,dtype=numpy.float64)             # <<<<<<<<<<<<<<
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 1] cdata = numpy.ascontiguousarray(weights.ravel(), dtype=numpy.float64)
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 1] outData = numpy.zeros(bins, dtype=numpy.float64)
 */
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__ascontiguousarray); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(((PyObject *)__pyx_v_pos));
  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_pos));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_pos));
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__float64); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__dtype), __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_8 = ((PyArrayObject *)__pyx_t_7);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cpos.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 3, 0, __pyx_stack) == -1)) {
      __pyx_v_cpos = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_cpos.rcbuffer->pybuffer.buf = NULL;
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    } else {__pyx_pybuffernd_cpos.diminfo[0].strides = __pyx_pybuffernd_cpos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_cpos.diminfo[0].shape = __pyx_pybuffernd_cpos.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_cpos.diminfo[1].strides = __pyx_pybuffernd_cpos.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_cpos.diminfo[1].shape = __pyx_pybuffernd_cpos.rcbuffer->pybuffer.shape[1]; __pyx_pybuffernd_cpos.diminfo[2].strides = __pyx_pybuffernd_cpos.rcbuffer->pybuffer.strides[2]; __pyx_pybuffernd_cpos.diminfo[2].shape = __pyx_pybuffernd_cpos.rcbuffer->pybuffer.shape[2];
    }
  }
  __pyx_t_8 = 0;
  __pyx_v_cpos = ((PyArrayObject *)__pyx_t_7);
  __pyx_t_7 = 0;
 145:     cdef numpy.ndarray[numpy.float64_t, ndim = 1] cdata = numpy.ascontiguousarray(weights.ravel(), dtype=numpy.float64)
  /* "splitPixel.pyx":145
 * 
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 3] cpos = numpy.ascontiguousarray(pos,dtype=numpy.float64)
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 1] cdata = numpy.ascontiguousarray(weights.ravel(), dtype=numpy.float64)             # <<<<<<<<<<<<<<
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 1] outData = numpy.zeros(bins, dtype=numpy.float64)
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 1] outCount = numpy.zeros(bins, dtype=numpy.float64)
 */
  __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_5 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__ascontiguousarray); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyObject_GetAttr(((PyObject *)__pyx_v_weights), __pyx_n_s__ravel); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_4 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__float64); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__dtype), __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_9 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cdata.rcbuffer->pybuffer, (PyObject*)__pyx_t_9, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
      __pyx_v_cdata = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_cdata.rcbuffer->pybuffer.buf = NULL;
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    } else {__pyx_pybuffernd_cdata.diminfo[0].strides = __pyx_pybuffernd_cdata.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_cdata.diminfo[0].shape = __pyx_pybuffernd_cdata.rcbuffer->pybuffer.shape[0];
    }
  }
  __pyx_t_9 = 0;
  __pyx_v_cdata = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
 146:     cdef numpy.ndarray[numpy.float64_t, ndim = 1] outData = numpy.zeros(bins, dtype=numpy.float64)
  /* "splitPixel.pyx":146
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 3] cpos = numpy.ascontiguousarray(pos,dtype=numpy.float64)
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 1] cdata = numpy.ascontiguousarray(weights.ravel(), dtype=numpy.float64)
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 1] outData = numpy.zeros(bins, dtype=numpy.float64)             # <<<<<<<<<<<<<<
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 1] outCount = numpy.zeros(bins, dtype=numpy.float64)
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 1] outMerge = numpy.zeros(bins, dtype=numpy.float64)
 */
  __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__zeros); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_bins); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__float64); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__dtype), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_1);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_outData.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
      __pyx_v_outData = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_outData.rcbuffer->pybuffer.buf = NULL;
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    } else {__pyx_pybuffernd_outData.diminfo[0].strides = __pyx_pybuffernd_outData.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_outData.diminfo[0].shape = __pyx_pybuffernd_outData.rcbuffer->pybuffer.shape[0];
    }
  }
  __pyx_t_10 = 0;
  __pyx_v_outData = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;
 147:     cdef numpy.ndarray[numpy.float64_t, ndim = 1] outCount = numpy.zeros(bins, dtype=numpy.float64)
  /* "splitPixel.pyx":147
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 1] cdata = numpy.ascontiguousarray(weights.ravel(), dtype=numpy.float64)
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 1] outData = numpy.zeros(bins, dtype=numpy.float64)
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 1] outCount = numpy.zeros(bins, dtype=numpy.float64)             # <<<<<<<<<<<<<<
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 1] outMerge = numpy.zeros(bins, dtype=numpy.float64)
 *     cdef numpy.int8_t[:] cmask
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__zeros); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_bins); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__float64); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__dtype), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
  __Pyx_DECREF(((PyObject *)__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_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_11 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_outCount.rcbuffer->pybuffer, (PyObject*)__pyx_t_11, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
      __pyx_v_outCount = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_outCount.rcbuffer->pybuffer.buf = NULL;
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    } else {__pyx_pybuffernd_outCount.diminfo[0].strides = __pyx_pybuffernd_outCount.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_outCount.diminfo[0].shape = __pyx_pybuffernd_outCount.rcbuffer->pybuffer.shape[0];
    }
  }
  __pyx_t_11 = 0;
  __pyx_v_outCount = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
 148:     cdef numpy.ndarray[numpy.float64_t, ndim = 1] outMerge = numpy.zeros(bins, dtype=numpy.float64)
  /* "splitPixel.pyx":148
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 1] outData = numpy.zeros(bins, dtype=numpy.float64)
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 1] outCount = numpy.zeros(bins, dtype=numpy.float64)
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 1] outMerge = numpy.zeros(bins, dtype=numpy.float64)             # <<<<<<<<<<<<<<
 *     cdef numpy.int8_t[:] cmask
 *     cdef double[:] cflat, cdark, cpolarization, csolidangle
 */
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__zeros); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyInt_FromSize_t(__pyx_v_bins); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__float64); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__dtype), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_12 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_outMerge.rcbuffer->pybuffer, (PyObject*)__pyx_t_12, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
      __pyx_v_outMerge = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_outMerge.rcbuffer->pybuffer.buf = NULL;
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    } else {__pyx_pybuffernd_outMerge.diminfo[0].strides = __pyx_pybuffernd_outMerge.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_outMerge.diminfo[0].shape = __pyx_pybuffernd_outMerge.rcbuffer->pybuffer.shape[0];
    }
  }
  __pyx_t_12 = 0;
  __pyx_v_outMerge = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
 149:     cdef numpy.int8_t[:] cmask
 150:     cdef double[:] cflat, cdark, cpolarization, csolidangle
 151: 
 152:     cdef double cdummy=0, cddummy=0, data=0
  /* "splitPixel.pyx":152
 *     cdef double[:] cflat, cdark, cpolarization, csolidangle
 * 
 *     cdef double cdummy=0, cddummy=0, data=0             # <<<<<<<<<<<<<<
 *     cdef double deltaR=0, deltaL=0, deltaA=0
 *     cdef double pos0_min=0, pos0_max=0, pos0_maxin=0, pos1_min=0, pos1_max=0, pos1_maxin=0
 */
  __pyx_v_cdummy = 0.0;
  __pyx_v_cddummy = 0.0;
  __pyx_v_data = 0.0;
 153:     cdef double deltaR=0, deltaL=0, deltaA=0
  /* "splitPixel.pyx":153
 * 
 *     cdef double cdummy=0, cddummy=0, data=0
 *     cdef double deltaR=0, deltaL=0, deltaA=0             # <<<<<<<<<<<<<<
 *     cdef double pos0_min=0, pos0_max=0, pos0_maxin=0, pos1_min=0, pos1_max=0, pos1_maxin=0
 *     cdef double aeraPixel=0, dpos=0, fbin0_min=0, fbin0_max=0#, fbin1_min, fbin1_max
 */
  __pyx_v_deltaR = 0.0;
  __pyx_v_deltaL = 0.0;
  __pyx_v_deltaA = 0.0;
 154:     cdef double pos0_min=0, pos0_max=0, pos0_maxin=0, pos1_min=0, pos1_max=0, pos1_maxin=0
  /* "splitPixel.pyx":154
 *     cdef double cdummy=0, cddummy=0, data=0
 *     cdef double deltaR=0, deltaL=0, deltaA=0
 *     cdef double pos0_min=0, pos0_max=0, pos0_maxin=0, pos1_min=0, pos1_max=0, pos1_maxin=0             # <<<<<<<<<<<<<<
 *     cdef double aeraPixel=0, dpos=0, fbin0_min=0, fbin0_max=0#, fbin1_min, fbin1_max
 *     cdef double a0=0, b0=0, c0=0, d0=0, max0=0, min0=0, a1=0, b1=0, c1=0, d1=0, max1=0, min1=0
 */
  __pyx_v_pos0_min = 0.0;
  __pyx_v_pos0_max = 0.0;
  __pyx_v_pos0_maxin = 0.0;
  __pyx_v_pos1_min = 0.0;
  __pyx_v_pos1_max = 0.0;
  __pyx_v_pos1_maxin = 0.0;
 155:     cdef double aeraPixel=0, dpos=0, fbin0_min=0, fbin0_max=0#, fbin1_min, fbin1_max
  /* "splitPixel.pyx":155
 *     cdef double deltaR=0, deltaL=0, deltaA=0
 *     cdef double pos0_min=0, pos0_max=0, pos0_maxin=0, pos1_min=0, pos1_max=0, pos1_maxin=0
 *     cdef double aeraPixel=0, dpos=0, fbin0_min=0, fbin0_max=0#, fbin1_min, fbin1_max             # <<<<<<<<<<<<<<
 *     cdef double a0=0, b0=0, c0=0, d0=0, max0=0, min0=0, a1=0, b1=0, c1=0, d1=0, max1=0, min1=0
 *     cdef double epsilon=1e-10
 */
  __pyx_v_aeraPixel = 0.0;
  __pyx_v_dpos = 0.0;
  __pyx_v_fbin0_min = 0.0;
  __pyx_v_fbin0_max = 0.0;
 156:     cdef double a0=0, b0=0, c0=0, d0=0, max0=0, min0=0, a1=0, b1=0, c1=0, d1=0, max1=0, min1=0
  /* "splitPixel.pyx":156
 *     cdef double pos0_min=0, pos0_max=0, pos0_maxin=0, pos1_min=0, pos1_max=0, pos1_maxin=0
 *     cdef double aeraPixel=0, dpos=0, fbin0_min=0, fbin0_max=0#, fbin1_min, fbin1_max
 *     cdef double a0=0, b0=0, c0=0, d0=0, max0=0, min0=0, a1=0, b1=0, c1=0, d1=0, max1=0, min1=0             # <<<<<<<<<<<<<<
 *     cdef double epsilon=1e-10
 * 
 */
  __pyx_v_a0 = 0.0;
  __pyx_v_b0 = 0.0;
  __pyx_v_c0 = 0.0;
  __pyx_v_d0 = 0.0;
  __pyx_v_max0 = 0.0;
  __pyx_v_min0 = 0.0;
  __pyx_v_a1 = 0.0;
  __pyx_v_b1 = 0.0;
  __pyx_v_c1 = 0.0;
  __pyx_v_d1 = 0.0;
  __pyx_v_max1 = 0.0;
  __pyx_v_min1 = 0.0;
 157:     cdef double epsilon=1e-10
  /* "splitPixel.pyx":157
 *     cdef double aeraPixel=0, dpos=0, fbin0_min=0, fbin0_max=0#, fbin1_min, fbin1_max
 *     cdef double a0=0, b0=0, c0=0, d0=0, max0=0, min0=0, a1=0, b1=0, c1=0, d1=0, max1=0, min1=0
 *     cdef double epsilon=1e-10             # <<<<<<<<<<<<<<
 * 
 *     cdef bint check_pos1=False, check_mask=False, do_dummy=False, do_dark=False, do_flat=False, do_polarization=False, do_solidangle=False
 */
  __pyx_v_epsilon = 1e-10;
 158: 
 159:     cdef bint check_pos1=False, check_mask=False, do_dummy=False, do_dark=False, do_flat=False, do_polarization=False, do_solidangle=False
  /* "splitPixel.pyx":159
 *     cdef double epsilon=1e-10
 * 
 *     cdef bint check_pos1=False, check_mask=False, do_dummy=False, do_dark=False, do_flat=False, do_polarization=False, do_solidangle=False             # <<<<<<<<<<<<<<
 *     cdef size_t i=0, idx=0, bin=0, bin0_max=0, bin0_min=0
 * 
 */
  __pyx_v_check_pos1 = 0;
  __pyx_v_check_mask = 0;
  __pyx_v_do_dummy = 0;
  __pyx_v_do_dark = 0;
  __pyx_v_do_flat = 0;
  __pyx_v_do_polarization = 0;
  __pyx_v_do_solidangle = 0;
 160:     cdef size_t i=0, idx=0, bin=0, bin0_max=0, bin0_min=0
  /* "splitPixel.pyx":160
 * 
 *     cdef bint check_pos1=False, check_mask=False, do_dummy=False, do_dark=False, do_flat=False, do_polarization=False, do_solidangle=False
 *     cdef size_t i=0, idx=0, bin=0, bin0_max=0, bin0_min=0             # <<<<<<<<<<<<<<
 * 
 *     if pos0Range is not None and len(pos0Range) > 1:
 */
  __pyx_v_i = 0;
  __pyx_v_idx = 0;
  __pyx_v_bin = 0;
  __pyx_v_bin0_max = 0;
  __pyx_v_bin0_min = 0;
 161: 
 162:     if pos0Range is not None and len(pos0Range) > 1:
  /* "splitPixel.pyx":162
 *     cdef size_t i=0, idx=0, bin=0, bin0_max=0, bin0_min=0
 * 
 *     if pos0Range is not None and len(pos0Range) > 1:             # <<<<<<<<<<<<<<
 *         pos0_min = min(pos0Range)
 *         pos0_maxin = max(pos0Range)
 */
  __pyx_t_3 = (__pyx_v_pos0Range != Py_None);
  if (__pyx_t_3) {
    __pyx_t_13 = PyObject_Length(__pyx_v_pos0Range); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_14 = (__pyx_t_13 > 1);
    __pyx_t_15 = __pyx_t_14;
  } else {
    __pyx_t_15 = __pyx_t_3;
  }
  if (__pyx_t_15) {
 163:         pos0_min = min(pos0Range)
    /* "splitPixel.pyx":163
 * 
 *     if pos0Range is not None and len(pos0Range) > 1:
 *         pos0_min = min(pos0Range)             # <<<<<<<<<<<<<<
 *         pos0_maxin = max(pos0Range)
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos0Range);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos0Range);
    __Pyx_GIVEREF(__pyx_v_pos0Range);
    __pyx_t_5 = PyObject_Call(__pyx_builtin_min, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_v_pos0_min = __pyx_t_16;
 164:         pos0_maxin = max(pos0Range)
    /* "splitPixel.pyx":164
 *     if pos0Range is not None and len(pos0Range) > 1:
 *         pos0_min = min(pos0Range)
 *         pos0_maxin = max(pos0Range)             # <<<<<<<<<<<<<<
 *     else:
 *         pos0_min = pos[:, :, 0].min()
 */
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos0Range);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos0Range);
    __Pyx_GIVEREF(__pyx_v_pos0Range);
    __pyx_t_4 = PyObject_Call(__pyx_builtin_max, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_pos0_maxin = __pyx_t_16;
    goto __pyx_L4;
  }
  /*else*/ {
 165:     else:
 166:         pos0_min = pos[:, :, 0].min()
  /* "splitPixel.pyx":166
 *         pos0_maxin = max(pos0Range)
 *     else:
 *         pos0_min = pos[:, :, 0].min()             # <<<<<<<<<<<<<<
 *         pos0_maxin = pos[:, :, 0].max()
 *     pos0_max = pos0_maxin * (1 + numpy.finfo(numpy.float32).eps)
 */
  __pyx_k_slice_3 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_slice_3);
  __Pyx_GIVEREF(__pyx_k_slice_3);
  __pyx_k_slice_4 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_slice_4);
  __Pyx_GIVEREF(__pyx_k_slice_4);

    /* "splitPixel.pyx":166
 *         pos0_maxin = max(pos0Range)
 *     else:
 *         pos0_min = pos[:, :, 0].min()             # <<<<<<<<<<<<<<
 *         pos0_maxin = pos[:, :, 0].max()
 *     pos0_max = pos0_maxin * (1 + numpy.finfo(numpy.float32).eps)
 */
    __pyx_t_4 = PyObject_GetItem(((PyObject *)__pyx_v_pos), ((PyObject *)__pyx_k_tuple_5)); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__min); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_pos0_min = __pyx_t_16;
  __pyx_k_tuple_5 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_tuple_5);
  __Pyx_INCREF(__pyx_k_slice_3);
  PyTuple_SET_ITEM(__pyx_k_tuple_5, 0, __pyx_k_slice_3);
  __Pyx_GIVEREF(__pyx_k_slice_3);
  __Pyx_INCREF(__pyx_k_slice_4);
  PyTuple_SET_ITEM(__pyx_k_tuple_5, 1, __pyx_k_slice_4);
  __Pyx_GIVEREF(__pyx_k_slice_4);
  __Pyx_INCREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_k_tuple_5, 2, __pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_5));
 167:         pos0_maxin = pos[:, :, 0].max()
  /* "splitPixel.pyx":167
 *     else:
 *         pos0_min = pos[:, :, 0].min()
 *         pos0_maxin = pos[:, :, 0].max()             # <<<<<<<<<<<<<<
 *     pos0_max = pos0_maxin * (1 + numpy.finfo(numpy.float32).eps)
 *     if pos1Range is not None and len(pos1Range) > 1:
 */
  __pyx_k_slice_6 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_slice_6);
  __Pyx_GIVEREF(__pyx_k_slice_6);
  __pyx_k_slice_7 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_slice_7);
  __Pyx_GIVEREF(__pyx_k_slice_7);

    /* "splitPixel.pyx":167
 *     else:
 *         pos0_min = pos[:, :, 0].min()
 *         pos0_maxin = pos[:, :, 0].max()             # <<<<<<<<<<<<<<
 *     pos0_max = pos0_maxin * (1 + numpy.finfo(numpy.float32).eps)
 *     if pos1Range is not None and len(pos1Range) > 1:
 */
    __pyx_t_4 = PyObject_GetItem(((PyObject *)__pyx_v_pos), ((PyObject *)__pyx_k_tuple_8)); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__max); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_pos0_maxin = __pyx_t_16;
  }
  __pyx_L4:;
  __pyx_k_tuple_8 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_tuple_8);
  __Pyx_INCREF(__pyx_k_slice_6);
  PyTuple_SET_ITEM(__pyx_k_tuple_8, 0, __pyx_k_slice_6);
  __Pyx_GIVEREF(__pyx_k_slice_6);
  __Pyx_INCREF(__pyx_k_slice_7);
  PyTuple_SET_ITEM(__pyx_k_tuple_8, 1, __pyx_k_slice_7);
  __Pyx_GIVEREF(__pyx_k_slice_7);
  __Pyx_INCREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_k_tuple_8, 2, __pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_8));
 168:     pos0_max = pos0_maxin * (1 + numpy.finfo(numpy.float32).eps)
  /* "splitPixel.pyx":168
 *         pos0_min = pos[:, :, 0].min()
 *         pos0_maxin = pos[:, :, 0].max()
 *     pos0_max = pos0_maxin * (1 + numpy.finfo(numpy.float32).eps)             # <<<<<<<<<<<<<<
 *     if pos1Range is not None and len(pos1Range) > 1:
 *         pos1_min = min(pos1Range)
 */
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_pos0_maxin); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__finfo); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__float32); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__eps); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Add(__pyx_int_1, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyNumber_Multiply(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_pos0_max = __pyx_t_16;
 169:     if pos1Range is not None and len(pos1Range) > 1:
  /* "splitPixel.pyx":169
 *         pos0_maxin = pos[:, :, 0].max()
 *     pos0_max = pos0_maxin * (1 + numpy.finfo(numpy.float32).eps)
 *     if pos1Range is not None and len(pos1Range) > 1:             # <<<<<<<<<<<<<<
 *         pos1_min = min(pos1Range)
 *         pos1_maxin = max(pos1Range)
 */
  __pyx_t_15 = (__pyx_v_pos1Range != Py_None);
  if (__pyx_t_15) {
    __pyx_t_13 = PyObject_Length(__pyx_v_pos1Range); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = (__pyx_t_13 > 1);
    __pyx_t_14 = __pyx_t_3;
  } else {
    __pyx_t_14 = __pyx_t_15;
  }
  if (__pyx_t_14) {
 170:         pos1_min = min(pos1Range)
    /* "splitPixel.pyx":170
 *     pos0_max = pos0_maxin * (1 + numpy.finfo(numpy.float32).eps)
 *     if pos1Range is not None and len(pos1Range) > 1:
 *         pos1_min = min(pos1Range)             # <<<<<<<<<<<<<<
 *         pos1_maxin = max(pos1Range)
 *         do_pos1 = True
 */
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_pos1Range);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pos1Range);
    __Pyx_GIVEREF(__pyx_v_pos1Range);
    __pyx_t_1 = PyObject_Call(__pyx_builtin_min, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_pos1_min = __pyx_t_16;
 171:         pos1_maxin = max(pos1Range)
    /* "splitPixel.pyx":171
 *     if pos1Range is not None and len(pos1Range) > 1:
 *         pos1_min = min(pos1Range)
 *         pos1_maxin = max(pos1Range)             # <<<<<<<<<<<<<<
 *         do_pos1 = True
 *     else:
 */
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_pos1Range);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pos1Range);
    __Pyx_GIVEREF(__pyx_v_pos1Range);
    __pyx_t_5 = PyObject_Call(__pyx_builtin_max, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
    __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_v_pos1_maxin = __pyx_t_16;
 172:         do_pos1 = True
    /* "splitPixel.pyx":172
 *         pos1_min = min(pos1Range)
 *         pos1_maxin = max(pos1Range)
 *         do_pos1 = True             # <<<<<<<<<<<<<<
 *     else:
 *         pos1_min = pos[:, :, 1].min()
 */
    __pyx_v_do_pos1 = 1;
    goto __pyx_L5;
  }
  /*else*/ {
 173:     else:
 174:         pos1_min = pos[:, :, 1].min()
  /* "splitPixel.pyx":174
 *         do_pos1 = True
 *     else:
 *         pos1_min = pos[:, :, 1].min()             # <<<<<<<<<<<<<<
 *         pos1_maxin = pos[:, :, 1].max()
 *     pos1_max = pos1_maxin * (1 + numpy.finfo(numpy.float32).eps)
 */
  __pyx_k_slice_9 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_slice_9);
  __Pyx_GIVEREF(__pyx_k_slice_9);
  __pyx_k_slice_10 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_slice_10);
  __Pyx_GIVEREF(__pyx_k_slice_10);

    /* "splitPixel.pyx":174
 *         do_pos1 = True
 *     else:
 *         pos1_min = pos[:, :, 1].min()             # <<<<<<<<<<<<<<
 *         pos1_maxin = pos[:, :, 1].max()
 *     pos1_max = pos1_maxin * (1 + numpy.finfo(numpy.float32).eps)
 */
    __pyx_t_5 = PyObject_GetItem(((PyObject *)__pyx_v_pos), ((PyObject *)__pyx_k_tuple_11)); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__min); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_v_pos1_min = __pyx_t_16;
  __pyx_k_tuple_11 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_tuple_11);
  __Pyx_INCREF(__pyx_k_slice_9);
  PyTuple_SET_ITEM(__pyx_k_tuple_11, 0, __pyx_k_slice_9);
  __Pyx_GIVEREF(__pyx_k_slice_9);
  __Pyx_INCREF(__pyx_k_slice_10);
  PyTuple_SET_ITEM(__pyx_k_tuple_11, 1, __pyx_k_slice_10);
  __Pyx_GIVEREF(__pyx_k_slice_10);
  __Pyx_INCREF(__pyx_int_1);
  PyTuple_SET_ITEM(__pyx_k_tuple_11, 2, __pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_11));
 175:         pos1_maxin = pos[:, :, 1].max()
  /* "splitPixel.pyx":175
 *     else:
 *         pos1_min = pos[:, :, 1].min()
 *         pos1_maxin = pos[:, :, 1].max()             # <<<<<<<<<<<<<<
 *     pos1_max = pos1_maxin * (1 + numpy.finfo(numpy.float32).eps)
 *     dpos = (pos0_max - pos0_min) / (< double > (bins))
 */
  __pyx_k_slice_12 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_slice_12);
  __Pyx_GIVEREF(__pyx_k_slice_12);
  __pyx_k_slice_13 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_slice_13);
  __Pyx_GIVEREF(__pyx_k_slice_13);

    /* "splitPixel.pyx":175
 *     else:
 *         pos1_min = pos[:, :, 1].min()
 *         pos1_maxin = pos[:, :, 1].max()             # <<<<<<<<<<<<<<
 *     pos1_max = pos1_maxin * (1 + numpy.finfo(numpy.float32).eps)
 *     dpos = (pos0_max - pos0_min) / (< double > (bins))
 */
    __pyx_t_5 = PyObject_GetItem(((PyObject *)__pyx_v_pos), ((PyObject *)__pyx_k_tuple_14)); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__max); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_v_pos1_maxin = __pyx_t_16;
  }
  __pyx_L5:;
  __pyx_k_tuple_14 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_tuple_14);
  __Pyx_INCREF(__pyx_k_slice_12);
  PyTuple_SET_ITEM(__pyx_k_tuple_14, 0, __pyx_k_slice_12);
  __Pyx_GIVEREF(__pyx_k_slice_12);
  __Pyx_INCREF(__pyx_k_slice_13);
  PyTuple_SET_ITEM(__pyx_k_tuple_14, 1, __pyx_k_slice_13);
  __Pyx_GIVEREF(__pyx_k_slice_13);
  __Pyx_INCREF(__pyx_int_1);
  PyTuple_SET_ITEM(__pyx_k_tuple_14, 2, __pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_14));
 176:     pos1_max = pos1_maxin * (1 + numpy.finfo(numpy.float32).eps)
  /* "splitPixel.pyx":176
 *         pos1_min = pos[:, :, 1].min()
 *         pos1_maxin = pos[:, :, 1].max()
 *     pos1_max = pos1_maxin * (1 + numpy.finfo(numpy.float32).eps)             # <<<<<<<<<<<<<<
 *     dpos = (pos0_max - pos0_min) / (< double > (bins))
 * 
 */
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_pos1_maxin); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__finfo); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__float32); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_7);
  __pyx_t_7 = 0;
  __pyx_t_7 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__eps); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyNumber_Add(__pyx_int_1, __pyx_t_1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_pos1_max = __pyx_t_16;
 177:     dpos = (pos0_max - pos0_min) / (< double > (bins))
  /* "splitPixel.pyx":177
 *         pos1_maxin = pos[:, :, 1].max()
 *     pos1_max = pos1_maxin * (1 + numpy.finfo(numpy.float32).eps)
 *     dpos = (pos0_max - pos0_min) / (< double > (bins))             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_dpos = ((__pyx_v_pos0_max - __pyx_v_pos0_min) / ((double)__pyx_v_bins));
 178: 
 179: 
 180:     outPos = numpy.linspace(pos0_min+0.5*dpos, pos0_maxin-0.5*dpos, bins)
  /* "splitPixel.pyx":180
 * 
 * 
 *     outPos = numpy.linspace(pos0_min+0.5*dpos, pos0_maxin-0.5*dpos, bins)             # <<<<<<<<<<<<<<
 * 
 *     if (dummy is not None) and (delta_dummy is not None):
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__linspace); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyFloat_FromDouble((__pyx_v_pos0_min + (0.5 * __pyx_v_dpos))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyFloat_FromDouble((__pyx_v_pos0_maxin - (0.5 * __pyx_v_dpos))); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_v_bins); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_1 = 0;
  __pyx_t_5 = 0;
  __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
  __pyx_v_outPos = __pyx_t_4;
  __pyx_t_4 = 0;
 181: 
 182:     if (dummy is not None) and (delta_dummy is not None):
  /* "splitPixel.pyx":182
 *     outPos = numpy.linspace(pos0_min+0.5*dpos, pos0_maxin-0.5*dpos, bins)
 * 
 *     if (dummy is not None) and (delta_dummy is not None):             # <<<<<<<<<<<<<<
 *         check_dummy = True
 *         cdummy =  float(dummy)
 */
  __pyx_t_14 = (__pyx_v_dummy != Py_None);
  if (__pyx_t_14) {
    __pyx_t_15 = (__pyx_v_delta_dummy != Py_None);
    __pyx_t_3 = __pyx_t_15;
  } else {
    __pyx_t_3 = __pyx_t_14;
  }
  if (__pyx_t_3) {
 183:         check_dummy = True
    /* "splitPixel.pyx":183
 * 
 *     if (dummy is not None) and (delta_dummy is not None):
 *         check_dummy = True             # <<<<<<<<<<<<<<
 *         cdummy =  float(dummy)
 *         cddummy =  float(delta_dummy)
 */
    __pyx_v_check_dummy = 1;
 184:         cdummy =  float(dummy)
    /* "splitPixel.pyx":184
 *     if (dummy is not None) and (delta_dummy is not None):
 *         check_dummy = True
 *         cdummy =  float(dummy)             # <<<<<<<<<<<<<<
 *         cddummy =  float(delta_dummy)
 *     elif (dummy is not None):
 */
    __pyx_t_16 = __Pyx_PyObject_AsDouble(__pyx_v_dummy); if (unlikely(__pyx_t_16 == ((double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_v_cdummy = __pyx_t_16;
 185:         cddummy =  float(delta_dummy)
    /* "splitPixel.pyx":185
 *         check_dummy = True
 *         cdummy =  float(dummy)
 *         cddummy =  float(delta_dummy)             # <<<<<<<<<<<<<<
 *     elif (dummy is not None):
 *         check_dummy = True
 */
    __pyx_t_16 = __Pyx_PyObject_AsDouble(__pyx_v_delta_dummy); if (unlikely(__pyx_t_16 == ((double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_v_cddummy = __pyx_t_16;
    goto __pyx_L6;
  }
 186:     elif (dummy is not None):
  /* "splitPixel.pyx":186
 *         cdummy =  float(dummy)
 *         cddummy =  float(delta_dummy)
 *     elif (dummy is not None):             # <<<<<<<<<<<<<<
 *         check_dummy = True
 *         cdummy = float(dummy)
 */
  __pyx_t_3 = (__pyx_v_dummy != Py_None);
  if (__pyx_t_3) {
 187:         check_dummy = True
    /* "splitPixel.pyx":187
 *         cddummy =  float(delta_dummy)
 *     elif (dummy is not None):
 *         check_dummy = True             # <<<<<<<<<<<<<<
 *         cdummy = float(dummy)
 *         cddummy = 0.0
 */
    __pyx_v_check_dummy = 1;
 188:         cdummy = float(dummy)
    /* "splitPixel.pyx":188
 *     elif (dummy is not None):
 *         check_dummy = True
 *         cdummy = float(dummy)             # <<<<<<<<<<<<<<
 *         cddummy = 0.0
 *     else:
 */
    __pyx_t_16 = __Pyx_PyObject_AsDouble(__pyx_v_dummy); if (unlikely(__pyx_t_16 == ((double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_v_cdummy = __pyx_t_16;
 189:         cddummy = 0.0
    /* "splitPixel.pyx":189
 *         check_dummy = True
 *         cdummy = float(dummy)
 *         cddummy = 0.0             # <<<<<<<<<<<<<<
 *     else:
 *         check_dummy = False
 */
    __pyx_v_cddummy = 0.0;
    goto __pyx_L6;
  }
  /*else*/ {
 190:     else:
 191:         check_dummy = False
    /* "splitPixel.pyx":191
 *         cddummy = 0.0
 *     else:
 *         check_dummy = False             # <<<<<<<<<<<<<<
 *         cdummy = 0.0
 *         cddummy = 0.0
 */
    __pyx_v_check_dummy = 0;
 192:         cdummy = 0.0
    /* "splitPixel.pyx":192
 *     else:
 *         check_dummy = False
 *         cdummy = 0.0             # <<<<<<<<<<<<<<
 *         cddummy = 0.0
 * 
 */
    __pyx_v_cdummy = 0.0;
 193:         cddummy = 0.0
    /* "splitPixel.pyx":193
 *         check_dummy = False
 *         cdummy = 0.0
 *         cddummy = 0.0             # <<<<<<<<<<<<<<
 * 
 *     if mask is not None:
 */
    __pyx_v_cddummy = 0.0;
  }
  __pyx_L6:;
 194: 
 195:     if mask is not None:
  /* "splitPixel.pyx":195
 *         cddummy = 0.0
 * 
 *     if mask is not None:             # <<<<<<<<<<<<<<
 *         check_mask = True
 *         assert mask.size == size
 */
  __pyx_t_3 = (__pyx_v_mask != Py_None);
  if (__pyx_t_3) {
 196:         check_mask = True
    /* "splitPixel.pyx":196
 * 
 *     if mask is not None:
 *         check_mask = True             # <<<<<<<<<<<<<<
 *         assert mask.size == size
 *         cmask = numpy.ascontiguousarray(mask.ravel(), dtype=numpy.int8)
 */
    __pyx_v_check_mask = 1;
 197:         assert mask.size == size
    /* "splitPixel.pyx":197
 *     if mask is not None:
 *         check_mask = True
 *         assert mask.size == size             # <<<<<<<<<<<<<<
 *         cmask = numpy.ascontiguousarray(mask.ravel(), dtype=numpy.int8)
 *     if dark is not None:
 */
    #ifndef CYTHON_WITHOUT_ASSERTIONS
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_mask, __pyx_n_s__size); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_size); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = PyObject_RichCompare(__pyx_t_4, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_3)) {
      PyErr_SetNone(PyExc_AssertionError);
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    #endif
 198:         cmask = numpy.ascontiguousarray(mask.ravel(), dtype=numpy.int8)
    /* "splitPixel.pyx":198
 *         check_mask = True
 *         assert mask.size == size
 *         cmask = numpy.ascontiguousarray(mask.ravel(), dtype=numpy.int8)             # <<<<<<<<<<<<<<
 *     if dark is not None:
 *         do_dark = True
 */
    __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__ascontiguousarray); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyObject_GetAttr(__pyx_v_mask, __pyx_n_s__ravel); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_4 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__int8); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__dtype), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    __pyx_t_17 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(__pyx_t_1);
    if (unlikely(!__pyx_t_17.memview)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_cmask = __pyx_t_17;
    __pyx_t_17.memview = NULL;
    __pyx_t_17.data = NULL;
    goto __pyx_L7;
  }
  __pyx_L7:;
 199:     if dark is not None:
  /* "splitPixel.pyx":199
 *         assert mask.size == size
 *         cmask = numpy.ascontiguousarray(mask.ravel(), dtype=numpy.int8)
 *     if dark is not None:             # <<<<<<<<<<<<<<
 *         do_dark = True
 *         assert dark.size == size
 */
  __pyx_t_3 = (__pyx_v_dark != Py_None);
  if (__pyx_t_3) {
 200:         do_dark = True
    /* "splitPixel.pyx":200
 *         cmask = numpy.ascontiguousarray(mask.ravel(), dtype=numpy.int8)
 *     if dark is not None:
 *         do_dark = True             # <<<<<<<<<<<<<<
 *         assert dark.size == size
 *         cdark = numpy.ascontiguousarray(dark.ravel(), dtype=numpy.float64)
 */
    __pyx_v_do_dark = 1;
 201:         assert dark.size == size
    /* "splitPixel.pyx":201
 *     if dark is not None:
 *         do_dark = True
 *         assert dark.size == size             # <<<<<<<<<<<<<<
 *         cdark = numpy.ascontiguousarray(dark.ravel(), dtype=numpy.float64)
 *     if flat is not None:
 */
    #ifndef CYTHON_WITHOUT_ASSERTIONS
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_dark, __pyx_n_s__size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_v_size); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_7 = PyObject_RichCompare(__pyx_t_1, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_3)) {
      PyErr_SetNone(PyExc_AssertionError);
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    #endif
 202:         cdark = numpy.ascontiguousarray(dark.ravel(), dtype=numpy.float64)
    /* "splitPixel.pyx":202
 *         do_dark = True
 *         assert dark.size == size
 *         cdark = numpy.ascontiguousarray(dark.ravel(), dtype=numpy.float64)             # <<<<<<<<<<<<<<
 *     if flat is not None:
 *         do_flat = True
 */
    __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__ascontiguousarray); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyObject_GetAttr(__pyx_v_dark, __pyx_n_s__ravel); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_1));
    __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__float64); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__dtype), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
    __pyx_t_18 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_t_5);
    if (unlikely(!__pyx_t_18.memview)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_v_cdark = __pyx_t_18;
    __pyx_t_18.memview = NULL;
    __pyx_t_18.data = NULL;
    goto __pyx_L8;
  }
  __pyx_L8:;
 203:     if flat is not None:
  /* "splitPixel.pyx":203
 *         assert dark.size == size
 *         cdark = numpy.ascontiguousarray(dark.ravel(), dtype=numpy.float64)
 *     if flat is not None:             # <<<<<<<<<<<<<<
 *         do_flat = True
 *         assert flat.size == size
 */
  __pyx_t_3 = (__pyx_v_flat != Py_None);
  if (__pyx_t_3) {
 204:         do_flat = True
    /* "splitPixel.pyx":204
 *         cdark = numpy.ascontiguousarray(dark.ravel(), dtype=numpy.float64)
 *     if flat is not None:
 *         do_flat = True             # <<<<<<<<<<<<<<
 *         assert flat.size == size
 *         cflat = numpy.ascontiguousarray(flat.ravel(), dtype=numpy.float64)
 */
    __pyx_v_do_flat = 1;
 205:         assert flat.size == size
    /* "splitPixel.pyx":205
 *     if flat is not None:
 *         do_flat = True
 *         assert flat.size == size             # <<<<<<<<<<<<<<
 *         cflat = numpy.ascontiguousarray(flat.ravel(), dtype=numpy.float64)
 *     if polarization is not None:
 */
    #ifndef CYTHON_WITHOUT_ASSERTIONS
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_flat, __pyx_n_s__size); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = PyObject_RichCompare(__pyx_t_5, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_3)) {
      PyErr_SetNone(PyExc_AssertionError);
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    #endif
 206:         cflat = numpy.ascontiguousarray(flat.ravel(), dtype=numpy.float64)
    /* "splitPixel.pyx":206
 *         do_flat = True
 *         assert flat.size == size
 *         cflat = numpy.ascontiguousarray(flat.ravel(), dtype=numpy.float64)             # <<<<<<<<<<<<<<
 *     if polarization is not None:
 *         do_polarization = True
 */
    __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__ascontiguousarray); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyObject_GetAttr(__pyx_v_flat, __pyx_n_s__ravel); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_5 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__float64); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__dtype), __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    __pyx_t_18 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_t_6);
    if (unlikely(!__pyx_t_18.memview)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_v_cflat = __pyx_t_18;
    __pyx_t_18.memview = NULL;
    __pyx_t_18.data = NULL;
    goto __pyx_L9;
  }
  __pyx_L9:;
 207:     if polarization is not None:
  /* "splitPixel.pyx":207
 *         assert flat.size == size
 *         cflat = numpy.ascontiguousarray(flat.ravel(), dtype=numpy.float64)
 *     if polarization is not None:             # <<<<<<<<<<<<<<
 *         do_polarization = True
 *         assert polarization.size == size
 */
  __pyx_t_3 = (__pyx_v_polarization != Py_None);
  if (__pyx_t_3) {
 208:         do_polarization = True
    /* "splitPixel.pyx":208
 *         cflat = numpy.ascontiguousarray(flat.ravel(), dtype=numpy.float64)
 *     if polarization is not None:
 *         do_polarization = True             # <<<<<<<<<<<<<<
 *         assert polarization.size == size
 *         cpolarization = numpy.ascontiguousarray(polarization.ravel(), dtype=numpy.float64)
 */
    __pyx_v_do_polarization = 1;
 209:         assert polarization.size == size
    /* "splitPixel.pyx":209
 *     if polarization is not None:
 *         do_polarization = True
 *         assert polarization.size == size             # <<<<<<<<<<<<<<
 *         cpolarization = numpy.ascontiguousarray(polarization.ravel(), dtype=numpy.float64)
 *     if solidangle is not None:
 */
    #ifndef CYTHON_WITHOUT_ASSERTIONS
    __pyx_t_6 = PyObject_GetAttr(__pyx_v_polarization, __pyx_n_s__size); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __Pyx_PyInt_FromSize_t(__pyx_v_size); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = PyObject_RichCompare(__pyx_t_6, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_3)) {
      PyErr_SetNone(PyExc_AssertionError);
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    #endif
 210:         cpolarization = numpy.ascontiguousarray(polarization.ravel(), dtype=numpy.float64)
    /* "splitPixel.pyx":210
 *         do_polarization = True
 *         assert polarization.size == size
 *         cpolarization = numpy.ascontiguousarray(polarization.ravel(), dtype=numpy.float64)             # <<<<<<<<<<<<<<
 *     if solidangle is not None:
 *         do_solidangle = True
 */
    __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_5 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__ascontiguousarray); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyObject_GetAttr(__pyx_v_polarization, __pyx_n_s__ravel); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__float64); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__dtype), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __pyx_t_18 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_t_4);
    if (unlikely(!__pyx_t_18.memview)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_cpolarization = __pyx_t_18;
    __pyx_t_18.memview = NULL;
    __pyx_t_18.data = NULL;
    goto __pyx_L10;
  }
  __pyx_L10:;
 211:     if solidangle is not None:
  /* "splitPixel.pyx":211
 *         assert polarization.size == size
 *         cpolarization = numpy.ascontiguousarray(polarization.ravel(), dtype=numpy.float64)
 *     if solidangle is not None:             # <<<<<<<<<<<<<<
 *         do_solidangle = True
 *         assert solidangle.size == size
 */
  __pyx_t_3 = (__pyx_v_solidangle != Py_None);
  if (__pyx_t_3) {
 212:         do_solidangle = True
    /* "splitPixel.pyx":212
 *         cpolarization = numpy.ascontiguousarray(polarization.ravel(), dtype=numpy.float64)
 *     if solidangle is not None:
 *         do_solidangle = True             # <<<<<<<<<<<<<<
 *         assert solidangle.size == size
 *         csolidangle = numpy.ascontiguousarray(solidangle.ravel(), dtype=numpy.float64)
 */
    __pyx_v_do_solidangle = 1;
 213:         assert solidangle.size == size
    /* "splitPixel.pyx":213
 *     if solidangle is not None:
 *         do_solidangle = True
 *         assert solidangle.size == size             # <<<<<<<<<<<<<<
 *         csolidangle = numpy.ascontiguousarray(solidangle.ravel(), dtype=numpy.float64)
 * 
 */
    #ifndef CYTHON_WITHOUT_ASSERTIONS
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_solidangle, __pyx_n_s__size); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_size); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = PyObject_RichCompare(__pyx_t_4, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_3)) {
      PyErr_SetNone(PyExc_AssertionError);
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    #endif
 214:         csolidangle = numpy.ascontiguousarray(solidangle.ravel(), dtype=numpy.float64)
    /* "splitPixel.pyx":214
 *         do_solidangle = True
 *         assert solidangle.size == size
 *         csolidangle = numpy.ascontiguousarray(solidangle.ravel(), dtype=numpy.float64)             # <<<<<<<<<<<<<<
 * 
 *     with nogil:
 */
    __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__ascontiguousarray); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyObject_GetAttr(__pyx_v_solidangle, __pyx_n_s__ravel); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_4 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__float64); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__dtype), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    __pyx_t_18 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_t_1);
    if (unlikely(!__pyx_t_18.memview)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_csolidangle = __pyx_t_18;
    __pyx_t_18.memview = NULL;
    __pyx_t_18.data = NULL;
    goto __pyx_L11;
  }
  __pyx_L11:;
 215: 
 216:     with nogil:
  /* "splitPixel.pyx":216
 *         csolidangle = numpy.ascontiguousarray(solidangle.ravel(), dtype=numpy.float64)
 * 
 *     with nogil:             # <<<<<<<<<<<<<<
 *         for idx in range(size):
 * 
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save = NULL;
      #endif
      Py_UNBLOCK_THREADS
      /*try:*/ {

      /* "splitPixel.pyx":216
 *         csolidangle = numpy.ascontiguousarray(solidangle.ravel(), dtype=numpy.float64)
 * 
 *     with nogil:             # <<<<<<<<<<<<<<
 *         for idx in range(size):
 * 
 */
      /*finally:*/ {
        int __pyx_why;
        __pyx_why = 0; goto __pyx_L14;
        __pyx_L13: __pyx_why = 4; goto __pyx_L14;
        __pyx_L14:;
        Py_BLOCK_THREADS
        switch (__pyx_why) {
          case 4: goto __pyx_L1_error;
        }
      }
  }
 217:         for idx in range(size):
        /* "splitPixel.pyx":217
 * 
 *     with nogil:
 *         for idx in range(size):             # <<<<<<<<<<<<<<
 * 
 *             if (check_mask) and (cmask[idx]):
 */
        __pyx_t_2 = __pyx_v_size;
        for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_2; __pyx_t_19+=1) {
          __pyx_v_idx = __pyx_t_19;
 218: 
 219:             if (check_mask) and (cmask[idx]):
          /* "splitPixel.pyx":219
 *         for idx in range(size):
 * 
 *             if (check_mask) and (cmask[idx]):             # <<<<<<<<<<<<<<
 *                 continue
 * 
 */
          __pyx_t_3 = __pyx_v_check_mask;
          if (__pyx_t_3) {
            if (unlikely(!__pyx_v_cmask.memview)) { __Pyx_RaiseUnboundMemoryviewSliceNogil("cmask"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L13;} }
            __pyx_t_20 = __pyx_v_idx;
            __pyx_t_14 = (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_cmask.data + __pyx_t_20 * __pyx_v_cmask.strides[0]) )));
          } else {
            __pyx_t_14 = __pyx_t_3;
          }
          if (__pyx_t_14) {
 220:                 continue
            /* "splitPixel.pyx":220
 * 
 *             if (check_mask) and (cmask[idx]):
 *                 continue             # <<<<<<<<<<<<<<
 * 
 *             data = cdata[idx]
 */
            goto __pyx_L15_continue;
            goto __pyx_L17;
          }
          __pyx_L17:;
 221: 
 222:             data = cdata[idx]
          /* "splitPixel.pyx":222
 *                 continue
 * 
 *             data = cdata[idx]             # <<<<<<<<<<<<<<
 *             if check_dummy and ( (cddummy==0.0 and data==cdummy) or (cddummy!=0.0 and fabs(data-cdummy)<=cddummy)):
 *                 continue
 */
          __pyx_t_21 = __pyx_v_idx;
          __pyx_v_data = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_cdata.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_cdata.diminfo[0].strides));
 223:             if check_dummy and ( (cddummy==0.0 and data==cdummy) or (cddummy!=0.0 and fabs(data-cdummy)<=cddummy)):
          /* "splitPixel.pyx":223
 * 
 *             data = cdata[idx]
 *             if check_dummy and ( (cddummy==0.0 and data==cdummy) or (cddummy!=0.0 and fabs(data-cdummy)<=cddummy)):             # <<<<<<<<<<<<<<
 *                 continue
 * 
 */
          if (__pyx_v_check_dummy) {
            __pyx_t_14 = (__pyx_v_cddummy == 0.0);
            if (__pyx_t_14) {
              __pyx_t_3 = (__pyx_v_data == __pyx_v_cdummy);
              __pyx_t_15 = __pyx_t_3;
            } else {
              __pyx_t_15 = __pyx_t_14;
            }
            if (!__pyx_t_15) {
              __pyx_t_14 = (__pyx_v_cddummy != 0.0);
              if (__pyx_t_14) {
                __pyx_t_3 = (fabs((__pyx_v_data - __pyx_v_cdummy)) <= __pyx_v_cddummy);
                __pyx_t_22 = __pyx_t_3;
              } else {
                __pyx_t_22 = __pyx_t_14;
              }
              __pyx_t_14 = __pyx_t_22;
            } else {
              __pyx_t_14 = __pyx_t_15;
            }
            __pyx_t_15 = __pyx_t_14;
          } else {
            __pyx_t_15 = __pyx_v_check_dummy;
          }
          if (__pyx_t_15) {
 224:                 continue
            /* "splitPixel.pyx":224
 *             data = cdata[idx]
 *             if check_dummy and ( (cddummy==0.0 and data==cdummy) or (cddummy!=0.0 and fabs(data-cdummy)<=cddummy)):
 *                 continue             # <<<<<<<<<<<<<<
 * 
 *             a0 = < double > cpos[idx, 0, 0]
 */
            goto __pyx_L15_continue;
            goto __pyx_L18;
          }
          __pyx_L18:;
 225: 
 226:             a0 = < double > cpos[idx, 0, 0]
          /* "splitPixel.pyx":226
 *                 continue
 * 
 *             a0 = < double > cpos[idx, 0, 0]             # <<<<<<<<<<<<<<
 *             a1 = < double > cpos[idx, 0, 1]
 *             b0 = < double > cpos[idx, 1, 0]
 */
          __pyx_t_23 = __pyx_v_idx;
          __pyx_t_24 = 0;
          __pyx_t_25 = 0;
          __pyx_v_a0 = ((double)(*__Pyx_BufPtrStrided3d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_cpos.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_cpos.diminfo[0].strides, __pyx_t_24, __pyx_pybuffernd_cpos.diminfo[1].strides, __pyx_t_25, __pyx_pybuffernd_cpos.diminfo[2].strides)));
 227:             a1 = < double > cpos[idx, 0, 1]
          /* "splitPixel.pyx":227
 * 
 *             a0 = < double > cpos[idx, 0, 0]
 *             a1 = < double > cpos[idx, 0, 1]             # <<<<<<<<<<<<<<
 *             b0 = < double > cpos[idx, 1, 0]
 *             b1 = < double > cpos[idx, 1, 1]
 */
          __pyx_t_26 = __pyx_v_idx;
          __pyx_t_27 = 0;
          __pyx_t_28 = 1;
          __pyx_v_a1 = ((double)(*__Pyx_BufPtrStrided3d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_cpos.rcbuffer->pybuffer.buf, __pyx_t_26, __pyx_pybuffernd_cpos.diminfo[0].strides, __pyx_t_27, __pyx_pybuffernd_cpos.diminfo[1].strides, __pyx_t_28, __pyx_pybuffernd_cpos.diminfo[2].strides)));
 228:             b0 = < double > cpos[idx, 1, 0]
          /* "splitPixel.pyx":228
 *             a0 = < double > cpos[idx, 0, 0]
 *             a1 = < double > cpos[idx, 0, 1]
 *             b0 = < double > cpos[idx, 1, 0]             # <<<<<<<<<<<<<<
 *             b1 = < double > cpos[idx, 1, 1]
 *             c0 = < double > cpos[idx, 2, 0]
 */
          __pyx_t_29 = __pyx_v_idx;
          __pyx_t_30 = 1;
          __pyx_t_31 = 0;
          __pyx_v_b0 = ((double)(*__Pyx_BufPtrStrided3d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_cpos.rcbuffer->pybuffer.buf, __pyx_t_29, __pyx_pybuffernd_cpos.diminfo[0].strides, __pyx_t_30, __pyx_pybuffernd_cpos.diminfo[1].strides, __pyx_t_31, __pyx_pybuffernd_cpos.diminfo[2].strides)));
 229:             b1 = < double > cpos[idx, 1, 1]
          /* "splitPixel.pyx":229
 *             a1 = < double > cpos[idx, 0, 1]
 *             b0 = < double > cpos[idx, 1, 0]
 *             b1 = < double > cpos[idx, 1, 1]             # <<<<<<<<<<<<<<
 *             c0 = < double > cpos[idx, 2, 0]
 *             c1 = < double > cpos[idx, 2, 1]
 */
          __pyx_t_32 = __pyx_v_idx;
          __pyx_t_33 = 1;
          __pyx_t_34 = 1;
          __pyx_v_b1 = ((double)(*__Pyx_BufPtrStrided3d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_cpos.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_cpos.diminfo[0].strides, __pyx_t_33, __pyx_pybuffernd_cpos.diminfo[1].strides, __pyx_t_34, __pyx_pybuffernd_cpos.diminfo[2].strides)));
 230:             c0 = < double > cpos[idx, 2, 0]
          /* "splitPixel.pyx":230
 *             b0 = < double > cpos[idx, 1, 0]
 *             b1 = < double > cpos[idx, 1, 1]
 *             c0 = < double > cpos[idx, 2, 0]             # <<<<<<<<<<<<<<
 *             c1 = < double > cpos[idx, 2, 1]
 *             d0 = < double > cpos[idx, 3, 0]
 */
          __pyx_t_35 = __pyx_v_idx;
          __pyx_t_36 = 2;
          __pyx_t_37 = 0;
          __pyx_v_c0 = ((double)(*__Pyx_BufPtrStrided3d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_cpos.rcbuffer->pybuffer.buf, __pyx_t_35, __pyx_pybuffernd_cpos.diminfo[0].strides, __pyx_t_36, __pyx_pybuffernd_cpos.diminfo[1].strides, __pyx_t_37, __pyx_pybuffernd_cpos.diminfo[2].strides)));
 231:             c1 = < double > cpos[idx, 2, 1]
          /* "splitPixel.pyx":231
 *             b1 = < double > cpos[idx, 1, 1]
 *             c0 = < double > cpos[idx, 2, 0]
 *             c1 = < double > cpos[idx, 2, 1]             # <<<<<<<<<<<<<<
 *             d0 = < double > cpos[idx, 3, 0]
 *             d1 = < double > cpos[idx, 3, 1]
 */
          __pyx_t_38 = __pyx_v_idx;
          __pyx_t_39 = 2;
          __pyx_t_40 = 1;
          __pyx_v_c1 = ((double)(*__Pyx_BufPtrStrided3d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_cpos.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_cpos.diminfo[0].strides, __pyx_t_39, __pyx_pybuffernd_cpos.diminfo[1].strides, __pyx_t_40, __pyx_pybuffernd_cpos.diminfo[2].strides)));
 232:             d0 = < double > cpos[idx, 3, 0]
          /* "splitPixel.pyx":232
 *             c0 = < double > cpos[idx, 2, 0]
 *             c1 = < double > cpos[idx, 2, 1]
 *             d0 = < double > cpos[idx, 3, 0]             # <<<<<<<<<<<<<<
 *             d1 = < double > cpos[idx, 3, 1]
 *             min0 = min4f(a0, b0, c0, d0)
 */
          __pyx_t_41 = __pyx_v_idx;
          __pyx_t_42 = 3;
          __pyx_t_43 = 0;
          __pyx_v_d0 = ((double)(*__Pyx_BufPtrStrided3d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_cpos.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_cpos.diminfo[0].strides, __pyx_t_42, __pyx_pybuffernd_cpos.diminfo[1].strides, __pyx_t_43, __pyx_pybuffernd_cpos.diminfo[2].strides)));
 233:             d1 = < double > cpos[idx, 3, 1]
          /* "splitPixel.pyx":233
 *             c1 = < double > cpos[idx, 2, 1]
 *             d0 = < double > cpos[idx, 3, 0]
 *             d1 = < double > cpos[idx, 3, 1]             # <<<<<<<<<<<<<<
 *             min0 = min4f(a0, b0, c0, d0)
 *             max0 = max4f(a0, b0, c0, d0)
 */
          __pyx_t_44 = __pyx_v_idx;
          __pyx_t_45 = 3;
          __pyx_t_46 = 1;
          __pyx_v_d1 = ((double)(*__Pyx_BufPtrStrided3d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_cpos.rcbuffer->pybuffer.buf, __pyx_t_44, __pyx_pybuffernd_cpos.diminfo[0].strides, __pyx_t_45, __pyx_pybuffernd_cpos.diminfo[1].strides, __pyx_t_46, __pyx_pybuffernd_cpos.diminfo[2].strides)));
 234:             min0 = min4f(a0, b0, c0, d0)
          /* "splitPixel.pyx":234
 *             d0 = < double > cpos[idx, 3, 0]
 *             d1 = < double > cpos[idx, 3, 1]
 *             min0 = min4f(a0, b0, c0, d0)             # <<<<<<<<<<<<<<
 *             max0 = max4f(a0, b0, c0, d0)
 *             if (max0<pos0_min) or (min0 > pos0_maxin):
 */
          __pyx_v_min0 = __pyx_f_10splitPixel_min4f(__pyx_v_a0, __pyx_v_b0, __pyx_v_c0, __pyx_v_d0);
 235:             max0 = max4f(a0, b0, c0, d0)
          /* "splitPixel.pyx":235
 *             d1 = < double > cpos[idx, 3, 1]
 *             min0 = min4f(a0, b0, c0, d0)
 *             max0 = max4f(a0, b0, c0, d0)             # <<<<<<<<<<<<<<
 *             if (max0<pos0_min) or (min0 > pos0_maxin):
 *                 continue
 */
          __pyx_v_max0 = __pyx_f_10splitPixel_max4f(__pyx_v_a0, __pyx_v_b0, __pyx_v_c0, __pyx_v_d0);
 236:             if (max0<pos0_min) or (min0 > pos0_maxin):
          /* "splitPixel.pyx":236
 *             min0 = min4f(a0, b0, c0, d0)
 *             max0 = max4f(a0, b0, c0, d0)
 *             if (max0<pos0_min) or (min0 > pos0_maxin):             # <<<<<<<<<<<<<<
 *                 continue
 *             if check_pos1:
 */
          __pyx_t_15 = (__pyx_v_max0 < __pyx_v_pos0_min);
          if (!__pyx_t_15) {
            __pyx_t_14 = (__pyx_v_min0 > __pyx_v_pos0_maxin);
            __pyx_t_22 = __pyx_t_14;
          } else {
            __pyx_t_22 = __pyx_t_15;
          }
          if (__pyx_t_22) {
 237:                 continue
            /* "splitPixel.pyx":237
 *             max0 = max4f(a0, b0, c0, d0)
 *             if (max0<pos0_min) or (min0 > pos0_maxin):
 *                 continue             # <<<<<<<<<<<<<<
 *             if check_pos1:
 *                 min1 = min4f(a1, b1, c1, d1)
 */
            goto __pyx_L15_continue;
            goto __pyx_L19;
          }
          __pyx_L19:;
 238:             if check_pos1:
          /* "splitPixel.pyx":238
 *             if (max0<pos0_min) or (min0 > pos0_maxin):
 *                 continue
 *             if check_pos1:             # <<<<<<<<<<<<<<
 *                 min1 = min4f(a1, b1, c1, d1)
 *                 max1 = max4f(a1, b1, c1, d1)
 */
          if (__pyx_v_check_pos1) {
 239:                 min1 = min4f(a1, b1, c1, d1)
            /* "splitPixel.pyx":239
 *                 continue
 *             if check_pos1:
 *                 min1 = min4f(a1, b1, c1, d1)             # <<<<<<<<<<<<<<
 *                 max1 = max4f(a1, b1, c1, d1)
 *                 if (max1<pos1_min) or (min1 > pos1_maxin):
 */
            __pyx_v_min1 = __pyx_f_10splitPixel_min4f(__pyx_v_a1, __pyx_v_b1, __pyx_v_c1, __pyx_v_d1);
 240:                 max1 = max4f(a1, b1, c1, d1)
            /* "splitPixel.pyx":240
 *             if check_pos1:
 *                 min1 = min4f(a1, b1, c1, d1)
 *                 max1 = max4f(a1, b1, c1, d1)             # <<<<<<<<<<<<<<
 *                 if (max1<pos1_min) or (min1 > pos1_maxin):
 *                     continue
 */
            __pyx_v_max1 = __pyx_f_10splitPixel_max4f(__pyx_v_a1, __pyx_v_b1, __pyx_v_c1, __pyx_v_d1);
 241:                 if (max1<pos1_min) or (min1 > pos1_maxin):
            /* "splitPixel.pyx":241
 *                 min1 = min4f(a1, b1, c1, d1)
 *                 max1 = max4f(a1, b1, c1, d1)
 *                 if (max1<pos1_min) or (min1 > pos1_maxin):             # <<<<<<<<<<<<<<
 *                     continue
 *             if min0<pos0_min:
 */
            __pyx_t_22 = (__pyx_v_max1 < __pyx_v_pos1_min);
            if (!__pyx_t_22) {
              __pyx_t_15 = (__pyx_v_min1 > __pyx_v_pos1_maxin);
              __pyx_t_14 = __pyx_t_15;
            } else {
              __pyx_t_14 = __pyx_t_22;
            }
            if (__pyx_t_14) {
 242:                     continue
              /* "splitPixel.pyx":242
 *                 max1 = max4f(a1, b1, c1, d1)
 *                 if (max1<pos1_min) or (min1 > pos1_maxin):
 *                     continue             # <<<<<<<<<<<<<<
 *             if min0<pos0_min:
 *                 min0=pos0_min
 */
              goto __pyx_L15_continue;
              goto __pyx_L21;
            }
            __pyx_L21:;
            goto __pyx_L20;
          }
          __pyx_L20:;
 243:             if min0<pos0_min:
          /* "splitPixel.pyx":243
 *                 if (max1<pos1_min) or (min1 > pos1_maxin):
 *                     continue
 *             if min0<pos0_min:             # <<<<<<<<<<<<<<
 *                 min0=pos0_min
 *             if max0>pos0_maxin:
 */
          __pyx_t_14 = (__pyx_v_min0 < __pyx_v_pos0_min);
          if (__pyx_t_14) {
 244:                 min0=pos0_min
            /* "splitPixel.pyx":244
 *                     continue
 *             if min0<pos0_min:
 *                 min0=pos0_min             # <<<<<<<<<<<<<<
 *             if max0>pos0_maxin:
 *                 max0=pos0_maxin
 */
            __pyx_v_min0 = __pyx_v_pos0_min;
            goto __pyx_L22;
          }
          __pyx_L22:;
 245:             if max0>pos0_maxin:
          /* "splitPixel.pyx":245
 *             if min0<pos0_min:
 *                 min0=pos0_min
 *             if max0>pos0_maxin:             # <<<<<<<<<<<<<<
 *                 max0=pos0_maxin
 * 
 */
          __pyx_t_14 = (__pyx_v_max0 > __pyx_v_pos0_maxin);
          if (__pyx_t_14) {
 246:                 max0=pos0_maxin
            /* "splitPixel.pyx":246
 *                 min0=pos0_min
 *             if max0>pos0_maxin:
 *                 max0=pos0_maxin             # <<<<<<<<<<<<<<
 * 
 *             if do_dark:
 */
            __pyx_v_max0 = __pyx_v_pos0_maxin;
            goto __pyx_L23;
          }
          __pyx_L23:;
 247: 
 248:             if do_dark:
          /* "splitPixel.pyx":248
 *                 max0=pos0_maxin
 * 
 *             if do_dark:             # <<<<<<<<<<<<<<
 *                 data -= cdark[idx]
 *             if do_flat:
 */
          if (__pyx_v_do_dark) {
 249:                 data -= cdark[idx]
            /* "splitPixel.pyx":249
 * 
 *             if do_dark:
 *                 data -= cdark[idx]             # <<<<<<<<<<<<<<
 *             if do_flat:
 *                 data /= cflat[idx]
 */
            if (unlikely(!__pyx_v_cdark.memview)) { __Pyx_RaiseUnboundMemoryviewSliceNogil("cdark"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L13;} }
            __pyx_t_47 = __pyx_v_idx;
            __pyx_v_data = (__pyx_v_data - (*((double *) ( /* dim=0 */ (__pyx_v_cdark.data + __pyx_t_47 * __pyx_v_cdark.strides[0]) ))));
            goto __pyx_L24;
          }
          __pyx_L24:;
 250:             if do_flat:
          /* "splitPixel.pyx":250
 *             if do_dark:
 *                 data -= cdark[idx]
 *             if do_flat:             # <<<<<<<<<<<<<<
 *                 data /= cflat[idx]
 *             if do_polarization:
 */
          if (__pyx_v_do_flat) {
 251:                 data /= cflat[idx]
            /* "splitPixel.pyx":251
 *                 data -= cdark[idx]
 *             if do_flat:
 *                 data /= cflat[idx]             # <<<<<<<<<<<<<<
 *             if do_polarization:
 *                 data /= cpolarization[idx]
 */
            if (unlikely(!__pyx_v_cflat.memview)) { __Pyx_RaiseUnboundMemoryviewSliceNogil("cflat"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 251; __pyx_clineno = __LINE__; goto __pyx_L13;} }
            __pyx_t_48 = __pyx_v_idx;
            __pyx_v_data = (__pyx_v_data / (*((double *) ( /* dim=0 */ (__pyx_v_cflat.data + __pyx_t_48 * __pyx_v_cflat.strides[0]) ))));
            goto __pyx_L25;
          }
          __pyx_L25:;
 252:             if do_polarization:
          /* "splitPixel.pyx":252
 *             if do_flat:
 *                 data /= cflat[idx]
 *             if do_polarization:             # <<<<<<<<<<<<<<
 *                 data /= cpolarization[idx]
 *             if do_solidangle:
 */
          if (__pyx_v_do_polarization) {
 253:                 data /= cpolarization[idx]
            /* "splitPixel.pyx":253
 *                 data /= cflat[idx]
 *             if do_polarization:
 *                 data /= cpolarization[idx]             # <<<<<<<<<<<<<<
 *             if do_solidangle:
 *                 data /= csolidangle[idx]
 */
            if (unlikely(!__pyx_v_cpolarization.memview)) { __Pyx_RaiseUnboundMemoryviewSliceNogil("cpolarization"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L13;} }
            __pyx_t_49 = __pyx_v_idx;
            __pyx_v_data = (__pyx_v_data / (*((double *) ( /* dim=0 */ (__pyx_v_cpolarization.data + __pyx_t_49 * __pyx_v_cpolarization.strides[0]) ))));
            goto __pyx_L26;
          }
          __pyx_L26:;
 254:             if do_solidangle:
          /* "splitPixel.pyx":254
 *             if do_polarization:
 *                 data /= cpolarization[idx]
 *             if do_solidangle:             # <<<<<<<<<<<<<<
 *                 data /= csolidangle[idx]
 * 
 */
          if (__pyx_v_do_solidangle) {
 255:                 data /= csolidangle[idx]
            /* "splitPixel.pyx":255
 *                 data /= cpolarization[idx]
 *             if do_solidangle:
 *                 data /= csolidangle[idx]             # <<<<<<<<<<<<<<
 * 
 *             fbin0_min = getBinNr(min0, pos0_min, dpos)
 */
            if (unlikely(!__pyx_v_csolidangle.memview)) { __Pyx_RaiseUnboundMemoryviewSliceNogil("csolidangle"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L13;} }
            __pyx_t_50 = __pyx_v_idx;
            __pyx_v_data = (__pyx_v_data / (*((double *) ( /* dim=0 */ (__pyx_v_csolidangle.data + __pyx_t_50 * __pyx_v_csolidangle.strides[0]) ))));
            goto __pyx_L27;
          }
          __pyx_L27:;
 256: 
 257:             fbin0_min = getBinNr(min0, pos0_min, dpos)
          /* "splitPixel.pyx":257
 *                 data /= csolidangle[idx]
 * 
 *             fbin0_min = getBinNr(min0, pos0_min, dpos)             # <<<<<<<<<<<<<<
 *             fbin0_max = getBinNr(max0, pos0_min, dpos)
 *             bin0_min = < size_t > fbin0_min
 */
          __pyx_v_fbin0_min = __pyx_f_10splitPixel_getBinNr(__pyx_v_min0, __pyx_v_pos0_min, __pyx_v_dpos);
 258:             fbin0_max = getBinNr(max0, pos0_min, dpos)
          /* "splitPixel.pyx":258
 * 
 *             fbin0_min = getBinNr(min0, pos0_min, dpos)
 *             fbin0_max = getBinNr(max0, pos0_min, dpos)             # <<<<<<<<<<<<<<
 *             bin0_min = < size_t > fbin0_min
 *             bin0_max = < size_t > fbin0_max
 */
          __pyx_v_fbin0_max = __pyx_f_10splitPixel_getBinNr(__pyx_v_max0, __pyx_v_pos0_min, __pyx_v_dpos);
 259:             bin0_min = < size_t > fbin0_min
          /* "splitPixel.pyx":259
 *             fbin0_min = getBinNr(min0, pos0_min, dpos)
 *             fbin0_max = getBinNr(max0, pos0_min, dpos)
 *             bin0_min = < size_t > fbin0_min             # <<<<<<<<<<<<<<
 *             bin0_max = < size_t > fbin0_max
 * 
 */
          __pyx_v_bin0_min = ((size_t)__pyx_v_fbin0_min);
 260:             bin0_max = < size_t > fbin0_max
          /* "splitPixel.pyx":260
 *             fbin0_max = getBinNr(max0, pos0_min, dpos)
 *             bin0_min = < size_t > fbin0_min
 *             bin0_max = < size_t > fbin0_max             # <<<<<<<<<<<<<<
 * 
 *             if bin0_min == bin0_max:
 */
          __pyx_v_bin0_max = ((size_t)__pyx_v_fbin0_max);
 261: 
 262:             if bin0_min == bin0_max:
          /* "splitPixel.pyx":262
 *             bin0_max = < size_t > fbin0_max
 * 
 *             if bin0_min == bin0_max:             # <<<<<<<<<<<<<<
 *                 #All pixel is within a single bin
 *                 outCount[bin0_min] += 1.0
 */
          __pyx_t_14 = (__pyx_v_bin0_min == __pyx_v_bin0_max);
          if (__pyx_t_14) {
 263:                 #All pixel is within a single bin
 264:                 outCount[bin0_min] += 1.0
            /* "splitPixel.pyx":264
 *             if bin0_min == bin0_max:
 *                 #All pixel is within a single bin
 *                 outCount[bin0_min] += 1.0             # <<<<<<<<<<<<<<
 *                 outData[bin0_min] += data
 * 
 */
            __pyx_t_51 = __pyx_v_bin0_min;
            *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outCount.rcbuffer->pybuffer.buf, __pyx_t_51, __pyx_pybuffernd_outCount.diminfo[0].strides) += 1.0;
 265:                 outData[bin0_min] += data
            /* "splitPixel.pyx":265
 *                 #All pixel is within a single bin
 *                 outCount[bin0_min] += 1.0
 *                 outData[bin0_min] += data             # <<<<<<<<<<<<<<
 * 
 *     #        else we have pixel spliting.
 */
            __pyx_t_52 = __pyx_v_bin0_min;
            *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outData.rcbuffer->pybuffer.buf, __pyx_t_52, __pyx_pybuffernd_outData.diminfo[0].strides) += __pyx_v_data;
            goto __pyx_L28;
          }
          /*else*/ {
 266: 
 267:     #        else we have pixel spliting.
 268:             else:
 269:                 aeraPixel = fbin0_max - fbin0_min
            /* "splitPixel.pyx":269
 *     #        else we have pixel spliting.
 *             else:
 *                 aeraPixel = fbin0_max - fbin0_min             # <<<<<<<<<<<<<<
 *                 deltaA = 1.0 / aeraPixel
 * 
 */
            __pyx_v_aeraPixel = (__pyx_v_fbin0_max - __pyx_v_fbin0_min);
 270:                 deltaA = 1.0 / aeraPixel
            /* "splitPixel.pyx":270
 *             else:
 *                 aeraPixel = fbin0_max - fbin0_min
 *                 deltaA = 1.0 / aeraPixel             # <<<<<<<<<<<<<<
 * 
 *                 deltaL = <double>(bin0_min) + 1.0 - fbin0_min
 */
            __pyx_v_deltaA = (1.0 / __pyx_v_aeraPixel);
 271: 
 272:                 deltaL = <double>(bin0_min) + 1.0 - fbin0_min
            /* "splitPixel.pyx":272
 *                 deltaA = 1.0 / aeraPixel
 * 
 *                 deltaL = <double>(bin0_min) + 1.0 - fbin0_min             # <<<<<<<<<<<<<<
 *                 deltaR = fbin0_max - <double>(bin0_max)
 * 
 */
            __pyx_v_deltaL = ((((double)__pyx_v_bin0_min) + 1.0) - __pyx_v_fbin0_min);
 273:                 deltaR = fbin0_max - <double>(bin0_max)
            /* "splitPixel.pyx":273
 * 
 *                 deltaL = <double>(bin0_min) + 1.0 - fbin0_min
 *                 deltaR = fbin0_max - <double>(bin0_max)             # <<<<<<<<<<<<<<
 * 
 *                 tmp = deltaA * deltaL
 */
            __pyx_v_deltaR = (__pyx_v_fbin0_max - ((double)__pyx_v_bin0_max));
 274: 
 275:                 tmp = deltaA * deltaL
            /* "splitPixel.pyx":275
 *                 deltaR = fbin0_max - <double>(bin0_max)
 * 
 *                 tmp = deltaA * deltaL             # <<<<<<<<<<<<<<
 *                 outCount[bin0_min] += tmp
 *                 outData[bin0_min] += data * tmp
 */
            __pyx_v_tmp = (__pyx_v_deltaA * __pyx_v_deltaL);
 276:                 outCount[bin0_min] += tmp
            /* "splitPixel.pyx":276
 * 
 *                 tmp = deltaA * deltaL
 *                 outCount[bin0_min] += tmp             # <<<<<<<<<<<<<<
 *                 outData[bin0_min] += data * tmp
 * 
 */
            __pyx_t_53 = __pyx_v_bin0_min;
            *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outCount.rcbuffer->pybuffer.buf, __pyx_t_53, __pyx_pybuffernd_outCount.diminfo[0].strides) += __pyx_v_tmp;
 277:                 outData[bin0_min] += data * tmp
            /* "splitPixel.pyx":277
 *                 tmp = deltaA * deltaL
 *                 outCount[bin0_min] += tmp
 *                 outData[bin0_min] += data * tmp             # <<<<<<<<<<<<<<
 * 
 *                 tmp = deltaA * deltaR
 */
            __pyx_t_54 = __pyx_v_bin0_min;
            *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outData.rcbuffer->pybuffer.buf, __pyx_t_54, __pyx_pybuffernd_outData.diminfo[0].strides) += (__pyx_v_data * __pyx_v_tmp);
 278: 
 279:                 tmp = deltaA * deltaR
            /* "splitPixel.pyx":279
 *                 outData[bin0_min] += data * tmp
 * 
 *                 tmp = deltaA * deltaR             # <<<<<<<<<<<<<<
 *                 outCount[bin0_max] += tmp
 *                 outData[bin0_max] += data * tmp
 */
            __pyx_v_tmp = (__pyx_v_deltaA * __pyx_v_deltaR);
 280:                 outCount[bin0_max] += tmp
            /* "splitPixel.pyx":280
 * 
 *                 tmp = deltaA * deltaR
 *                 outCount[bin0_max] += tmp             # <<<<<<<<<<<<<<
 *                 outData[bin0_max] += data * tmp
 * 
 */
            __pyx_t_55 = __pyx_v_bin0_max;
            *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outCount.rcbuffer->pybuffer.buf, __pyx_t_55, __pyx_pybuffernd_outCount.diminfo[0].strides) += __pyx_v_tmp;
 281:                 outData[bin0_max] += data * tmp
            /* "splitPixel.pyx":281
 *                 tmp = deltaA * deltaR
 *                 outCount[bin0_max] += tmp
 *                 outData[bin0_max] += data * tmp             # <<<<<<<<<<<<<<
 * 
 *                 if bin0_min + 1 != bin0_max:
 */
            __pyx_t_56 = __pyx_v_bin0_max;
            *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outData.rcbuffer->pybuffer.buf, __pyx_t_56, __pyx_pybuffernd_outData.diminfo[0].strides) += (__pyx_v_data * __pyx_v_tmp);
 282: 
 283:                 if bin0_min + 1 != bin0_max:
            /* "splitPixel.pyx":283
 *                 outData[bin0_max] += data * tmp
 * 
 *                 if bin0_min + 1 != bin0_max:             # <<<<<<<<<<<<<<
 *                     for i in range(bin0_min + 1, bin0_max):
 *                         outCount[i] += deltaA
 */
            __pyx_t_14 = ((__pyx_v_bin0_min + 1) != __pyx_v_bin0_max);
            if (__pyx_t_14) {
 284:                     for i in range(bin0_min + 1, bin0_max):
              /* "splitPixel.pyx":284
 * 
 *                 if bin0_min + 1 != bin0_max:
 *                     for i in range(bin0_min + 1, bin0_max):             # <<<<<<<<<<<<<<
 *                         outCount[i] += deltaA
 *                         outData[i] += data * deltaA
 */
              __pyx_t_57 = __pyx_v_bin0_max;
              for (__pyx_t_58 = (__pyx_v_bin0_min + 1); __pyx_t_58 < __pyx_t_57; __pyx_t_58+=1) {
                __pyx_v_i = __pyx_t_58;
 285:                         outCount[i] += deltaA
                /* "splitPixel.pyx":285
 *                 if bin0_min + 1 != bin0_max:
 *                     for i in range(bin0_min + 1, bin0_max):
 *                         outCount[i] += deltaA             # <<<<<<<<<<<<<<
 *                         outData[i] += data * deltaA
 * 
 */
                __pyx_t_59 = __pyx_v_i;
                *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outCount.rcbuffer->pybuffer.buf, __pyx_t_59, __pyx_pybuffernd_outCount.diminfo[0].strides) += __pyx_v_deltaA;
 286:                         outData[i] += data * deltaA
                /* "splitPixel.pyx":286
 *                     for i in range(bin0_min + 1, bin0_max):
 *                         outCount[i] += deltaA
 *                         outData[i] += data * deltaA             # <<<<<<<<<<<<<<
 * 
 * 
 */
                __pyx_t_60 = __pyx_v_i;
                *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outData.rcbuffer->pybuffer.buf, __pyx_t_60, __pyx_pybuffernd_outData.diminfo[0].strides) += (__pyx_v_data * __pyx_v_deltaA);
              }
              goto __pyx_L29;
            }
            __pyx_L29:;
          }
          __pyx_L28:;
          __pyx_L15_continue:;
        }
 287: 
 288: 
 289:         for i in range(bins):
        /* "splitPixel.pyx":289
 * 
 * 
 *         for i in range(bins):             # <<<<<<<<<<<<<<
 *             if outCount[i] > epsilon:
 *                 outMerge[i] = outData[i] / outCount[i]
 */
        __pyx_t_2 = __pyx_v_bins;
        for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_2; __pyx_t_19+=1) {
          __pyx_v_i = __pyx_t_19;
 290:             if outCount[i] > epsilon:
          /* "splitPixel.pyx":290
 * 
 *         for i in range(bins):
 *             if outCount[i] > epsilon:             # <<<<<<<<<<<<<<
 *                 outMerge[i] = outData[i] / outCount[i]
 *             else:
 */
          __pyx_t_57 = __pyx_v_i;
          __pyx_t_14 = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outCount.rcbuffer->pybuffer.buf, __pyx_t_57, __pyx_pybuffernd_outCount.diminfo[0].strides)) > __pyx_v_epsilon);
          if (__pyx_t_14) {
 291:                 outMerge[i] = outData[i] / outCount[i]
            /* "splitPixel.pyx":291
 *         for i in range(bins):
 *             if outCount[i] > epsilon:
 *                 outMerge[i] = outData[i] / outCount[i]             # <<<<<<<<<<<<<<
 *             else:
 *                 outMerge[i] = cdummy
 */
            __pyx_t_58 = __pyx_v_i;
            __pyx_t_61 = __pyx_v_i;
            __pyx_t_62 = __pyx_v_i;
            *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outMerge.rcbuffer->pybuffer.buf, __pyx_t_62, __pyx_pybuffernd_outMerge.diminfo[0].strides) = ((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outData.rcbuffer->pybuffer.buf, __pyx_t_58, __pyx_pybuffernd_outData.diminfo[0].strides)) / (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outCount.rcbuffer->pybuffer.buf, __pyx_t_61, __pyx_pybuffernd_outCount.diminfo[0].strides)));
            goto __pyx_L34;
          }
          /*else*/ {
 292:             else:
 293:                 outMerge[i] = cdummy
            /* "splitPixel.pyx":293
 *                 outMerge[i] = outData[i] / outCount[i]
 *             else:
 *                 outMerge[i] = cdummy             # <<<<<<<<<<<<<<
 * 
 *     return  outPos, outMerge, outData, outCount
 */
            __pyx_t_63 = __pyx_v_i;
            *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outMerge.rcbuffer->pybuffer.buf, __pyx_t_63, __pyx_pybuffernd_outMerge.diminfo[0].strides) = __pyx_v_cdummy;
          }
          __pyx_L34:;
        }
      }
 294: 
 295:     return  outPos, outMerge, outData, outCount
  /* "splitPixel.pyx":295
 *                 outMerge[i] = cdummy
 * 
 *     return  outPos, outMerge, outData, outCount             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_outPos);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_outPos);
  __Pyx_GIVEREF(__pyx_v_outPos);
  __Pyx_INCREF(((PyObject *)__pyx_v_outMerge));
  PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outMerge));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outMerge));
  __Pyx_INCREF(((PyObject *)__pyx_v_outData));
  PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outData));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outData));
  __Pyx_INCREF(((PyObject *)__pyx_v_outCount));
  PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_outCount));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_outCount));
  __pyx_r = ((PyObject *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __PYX_XDEC_MEMVIEW(&__pyx_t_17, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_t_18, 1);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cdata.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cpos.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_outCount.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_outData.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_outMerge.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("splitPixel.fullSplit1D", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cdata.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cpos.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_outCount.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_outData.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_outMerge.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_cpos);
  __Pyx_XDECREF((PyObject *)__pyx_v_cdata);
  __Pyx_XDECREF((PyObject *)__pyx_v_outData);
  __Pyx_XDECREF((PyObject *)__pyx_v_outCount);
  __Pyx_XDECREF((PyObject *)__pyx_v_outMerge);
  __PYX_XDEC_MEMVIEW(&__pyx_v_cmask, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_cflat, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_cdark, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_cpolarization, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_csolidangle, 1);
  __Pyx_XDECREF(__pyx_v_outPos);
  __Pyx_XDECREF((PyObject *)__pyx_v_pos);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_10splitPixel_3fullSplit2D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_10splitPixel_2fullSplit2D[] = "\n    Calculate 2D histogram of pos weighted by weights\n\n    Splitting is done on the pixel's bounding box like fit2D\n\n\n    @param pos: 3D array with pos0; Corner A,B,C,D; tth or chi\n    @param weights: array with intensities\n    @param bins: number of output bins int or 2-tuple of int\n    @param pos0Range: minimum and maximum  of the 2th range\n    @param pos1Range: minimum and maximum  of the chi range\n    @param dummy: value for bins without pixels\n    @param delta_dummy: precision of dummy value\n    @param mask: array (of int8) with masked pixels with 1 (0=not masked)\n    @param dark: array (of float64) with dark noise to be subtracted (or None)\n    @param flat: array (of float64) with flat-field image\n    @param polarization: array (of float64) with polarization correction\n    @param solidangle: array (of float64)with solid angle corrections\n    @return  I, edges0, edges1, weighted histogram(2D), unweighted histogram (2D)\n    ";
static PyMethodDef __pyx_mdef_10splitPixel_3fullSplit2D = {__Pyx_NAMESTR("fullSplit2D"), (PyCFunction)__pyx_pw_10splitPixel_3fullSplit2D, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_10splitPixel_2fullSplit2D)};
static PyObject *__pyx_pw_10splitPixel_3fullSplit2D(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_pos = 0;
  PyArrayObject *__pyx_v_weights = 0;
  PyObject *__pyx_v_bins = 0;
  PyObject *__pyx_v_pos0Range = 0;
  PyObject *__pyx_v_pos1Range = 0;
  PyObject *__pyx_v_dummy = 0;
  PyObject *__pyx_v_delta_dummy = 0;
  PyObject *__pyx_v_mask = 0;
  PyObject *__pyx_v_dark = 0;
  PyObject *__pyx_v_flat = 0;
  PyObject *__pyx_v_solidangle = 0;
  PyObject *__pyx_v_polarization = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("fullSplit2D (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__pos,&__pyx_n_s__weights,&__pyx_n_s__bins,&__pyx_n_s__pos0Range,&__pyx_n_s__pos1Range,&__pyx_n_s__dummy,&__pyx_n_s__delta_dummy,&__pyx_n_s__mask,&__pyx_n_s__dark,&__pyx_n_s__flat,&__pyx_n_s__solidangle,&__pyx_n_s__polarization,0};
    PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
 296: 
 297: 
 298: 
 299: 
 300: 
 301: 
 302: @cython.cdivision(True)
 303: @cython.boundscheck(False)
 304: @cython.wraparound(False)
 305: def fullSplit2D(numpy.ndarray pos not None,
/* "splitPixel.pyx":305
 * @cython.boundscheck(False)
 * @cython.wraparound(False)
 * def fullSplit2D(numpy.ndarray pos not None,             # <<<<<<<<<<<<<<
 *                 numpy.ndarray weights not None,
 *                 bins not None,
 */

static PyObject *__pyx_pf_10splitPixel_2fullSplit2D(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_pos, PyArrayObject *__pyx_v_weights, PyObject *__pyx_v_bins, PyObject *__pyx_v_pos0Range, PyObject *__pyx_v_pos1Range, PyObject *__pyx_v_dummy, PyObject *__pyx_v_delta_dummy, PyObject *__pyx_v_mask, PyObject *__pyx_v_dark, PyObject *__pyx_v_flat, PyObject *__pyx_v_solidangle, PyObject *__pyx_v_polarization) {
  size_t __pyx_v_bins0;
  size_t __pyx_v_bins1;
  size_t __pyx_v_size;
  PyArrayObject *__pyx_v_cpos = 0;
  PyArrayObject *__pyx_v_cdata = 0;
  PyArrayObject *__pyx_v_outData = 0;
  PyArrayObject *__pyx_v_outCount = 0;
  PyArrayObject *__pyx_v_outMerge = 0;
  PyArrayObject *__pyx_v_edges0 = 0;
  PyArrayObject *__pyx_v_edges1 = 0;
  __Pyx_memviewslice __pyx_v_cmask = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_cflat = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_cdark = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_cpolarization = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_csolidangle = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_check_mask;
  CYTHON_UNUSED int __pyx_v_do_dummy;
  int __pyx_v_do_dark;
  int __pyx_v_do_flat;
  int __pyx_v_do_polarization;
  int __pyx_v_do_solidangle;
  double __pyx_v_cdummy;
  double __pyx_v_cddummy;
  double __pyx_v_data;
  double __pyx_v_min0;
  double __pyx_v_max0;
  double __pyx_v_min1;
  double __pyx_v_max1;
  double __pyx_v_deltaR;
  double __pyx_v_deltaL;
  double __pyx_v_deltaU;
  double __pyx_v_deltaD;
  double __pyx_v_deltaA;
  double __pyx_v_pos0_min;
  double __pyx_v_pos0_max;
  double __pyx_v_pos1_min;
  double __pyx_v_pos1_max;
  double __pyx_v_pos0_maxin;
  double __pyx_v_pos1_maxin;
  double __pyx_v_aeraPixel;
  double __pyx_v_fbin0_min;
  double __pyx_v_fbin0_max;
  double __pyx_v_fbin1_min;
  double __pyx_v_fbin1_max;
  double __pyx_v_a0;
  double __pyx_v_a1;
  double __pyx_v_b0;
  double __pyx_v_b1;
  double __pyx_v_c0;
  double __pyx_v_c1;
  double __pyx_v_d0;
  double __pyx_v_d1;
  double __pyx_v_epsilon;
  size_t __pyx_v_bin0_max;
  size_t __pyx_v_bin0_min;
  size_t __pyx_v_bin1_max;
  size_t __pyx_v_bin1_min;
  size_t __pyx_v_i;
  size_t __pyx_v_j;
  size_t __pyx_v_idx;
  double __pyx_v_dpos0;
  double __pyx_v_dpos1;
  int __pyx_v_check_dummy;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_cdata;
  __Pyx_Buffer __pyx_pybuffer_cdata;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_cpos;
  __Pyx_Buffer __pyx_pybuffer_cpos;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_edges0;
  __Pyx_Buffer __pyx_pybuffer_edges0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_edges1;
  __Pyx_Buffer __pyx_pybuffer_edges1;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_outCount;
  __Pyx_Buffer __pyx_pybuffer_outCount;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_outData;
  __Pyx_Buffer __pyx_pybuffer_outData;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_outMerge;
  __Pyx_Buffer __pyx_pybuffer_outMerge;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("fullSplit2D", 0);
  __Pyx_INCREF((PyObject *)__pyx_v_pos);
  __pyx_pybuffer_cpos.pybuffer.buf = NULL;
  __pyx_pybuffer_cpos.refcount = 0;
  __pyx_pybuffernd_cpos.data = NULL;
  __pyx_pybuffernd_cpos.rcbuffer = &__pyx_pybuffer_cpos;
  __pyx_pybuffer_cdata.pybuffer.buf = NULL;
  __pyx_pybuffer_cdata.refcount = 0;
  __pyx_pybuffernd_cdata.data = NULL;
  __pyx_pybuffernd_cdata.rcbuffer = &__pyx_pybuffer_cdata;
  __pyx_pybuffer_outData.pybuffer.buf = NULL;
  __pyx_pybuffer_outData.refcount = 0;
  __pyx_pybuffernd_outData.data = NULL;
  __pyx_pybuffernd_outData.rcbuffer = &__pyx_pybuffer_outData;
  __pyx_pybuffer_outCount.pybuffer.buf = NULL;
  __pyx_pybuffer_outCount.refcount = 0;
  __pyx_pybuffernd_outCount.data = NULL;
  __pyx_pybuffernd_outCount.rcbuffer = &__pyx_pybuffer_outCount;
  __pyx_pybuffer_outMerge.pybuffer.buf = NULL;
  __pyx_pybuffer_outMerge.refcount = 0;
  __pyx_pybuffernd_outMerge.data = NULL;
  __pyx_pybuffernd_outMerge.rcbuffer = &__pyx_pybuffer_outMerge;
  __pyx_pybuffer_edges0.pybuffer.buf = NULL;
  __pyx_pybuffer_edges0.refcount = 0;
  __pyx_pybuffernd_edges0.data = NULL;
  __pyx_pybuffernd_edges0.rcbuffer = &__pyx_pybuffer_edges0;
  __pyx_pybuffer_edges1.pybuffer.buf = NULL;
  __pyx_pybuffer_edges1.refcount = 0;
  __pyx_pybuffernd_edges1.data = NULL;
  __pyx_pybuffernd_edges1.rcbuffer = &__pyx_pybuffer_edges1;

  /* "splitPixel.pyx":305
 * @cython.boundscheck(False)
 * @cython.wraparound(False)
 * def fullSplit2D(numpy.ndarray pos not None,             # <<<<<<<<<<<<<<
 *                 numpy.ndarray weights not None,
 *                 bins not None,
 */
  __pyx_k_tuple_77 = PyTuple_New(75); if (unlikely(!__pyx_k_tuple_77)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_tuple_77);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__pos));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 0, ((PyObject *)__pyx_n_s__pos));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pos));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__weights));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 1, ((PyObject *)__pyx_n_s__weights));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__weights));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__bins));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 2, ((PyObject *)__pyx_n_s__bins));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__bins));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__pos0Range));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 3, ((PyObject *)__pyx_n_s__pos0Range));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pos0Range));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__pos1Range));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 4, ((PyObject *)__pyx_n_s__pos1Range));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pos1Range));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__dummy));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 5, ((PyObject *)__pyx_n_s__dummy));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__dummy));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__delta_dummy));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 6, ((PyObject *)__pyx_n_s__delta_dummy));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__delta_dummy));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__mask));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 7, ((PyObject *)__pyx_n_s__mask));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__mask));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__dark));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 8, ((PyObject *)__pyx_n_s__dark));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__dark));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__flat));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 9, ((PyObject *)__pyx_n_s__flat));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__flat));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__solidangle));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 10, ((PyObject *)__pyx_n_s__solidangle));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__solidangle));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__polarization));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 11, ((PyObject *)__pyx_n_s__polarization));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__polarization));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__bins0));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 12, ((PyObject *)__pyx_n_s__bins0));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__bins0));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__bins1));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 13, ((PyObject *)__pyx_n_s__bins1));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__bins1));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__size));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 14, ((PyObject *)__pyx_n_s__size));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__size));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__cpos));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 15, ((PyObject *)__pyx_n_s__cpos));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__cpos));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__cdata));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 16, ((PyObject *)__pyx_n_s__cdata));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__cdata));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__outData));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 17, ((PyObject *)__pyx_n_s__outData));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__outData));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__outCount));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 18, ((PyObject *)__pyx_n_s__outCount));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__outCount));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__outMerge));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 19, ((PyObject *)__pyx_n_s__outMerge));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__outMerge));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__edges0));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 20, ((PyObject *)__pyx_n_s__edges0));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__edges0));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__edges1));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 21, ((PyObject *)__pyx_n_s__edges1));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__edges1));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__cmask));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 22, ((PyObject *)__pyx_n_s__cmask));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__cmask));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__cflat));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 23, ((PyObject *)__pyx_n_s__cflat));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__cflat));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__cdark));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 24, ((PyObject *)__pyx_n_s__cdark));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__cdark));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__cpolarization));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 25, ((PyObject *)__pyx_n_s__cpolarization));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__cpolarization));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__csolidangle));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 26, ((PyObject *)__pyx_n_s__csolidangle));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__csolidangle));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__check_mask));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 27, ((PyObject *)__pyx_n_s__check_mask));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__check_mask));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__do_dummy));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 28, ((PyObject *)__pyx_n_s__do_dummy));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__do_dummy));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__do_dark));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 29, ((PyObject *)__pyx_n_s__do_dark));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__do_dark));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__do_flat));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 30, ((PyObject *)__pyx_n_s__do_flat));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__do_flat));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__do_polarization));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 31, ((PyObject *)__pyx_n_s__do_polarization));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__do_polarization));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__do_solidangle));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 32, ((PyObject *)__pyx_n_s__do_solidangle));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__do_solidangle));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__cdummy));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 33, ((PyObject *)__pyx_n_s__cdummy));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__cdummy));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__cddummy));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 34, ((PyObject *)__pyx_n_s__cddummy));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__cddummy));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__data));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 35, ((PyObject *)__pyx_n_s__data));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__data));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__min0));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 36, ((PyObject *)__pyx_n_s__min0));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__min0));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__max0));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 37, ((PyObject *)__pyx_n_s__max0));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__max0));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__min1));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 38, ((PyObject *)__pyx_n_s__min1));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__min1));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__max1));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 39, ((PyObject *)__pyx_n_s__max1));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__max1));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__deltaR));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 40, ((PyObject *)__pyx_n_s__deltaR));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__deltaR));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__deltaL));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 41, ((PyObject *)__pyx_n_s__deltaL));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__deltaL));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__deltaU));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 42, ((PyObject *)__pyx_n_s__deltaU));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__deltaU));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__deltaD));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 43, ((PyObject *)__pyx_n_s__deltaD));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__deltaD));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__deltaA));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 44, ((PyObject *)__pyx_n_s__deltaA));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__deltaA));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__pos0_min));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 45, ((PyObject *)__pyx_n_s__pos0_min));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pos0_min));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__pos0_max));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 46, ((PyObject *)__pyx_n_s__pos0_max));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pos0_max));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__pos1_min));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 47, ((PyObject *)__pyx_n_s__pos1_min));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pos1_min));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__pos1_max));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 48, ((PyObject *)__pyx_n_s__pos1_max));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pos1_max));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__pos0_maxin));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 49, ((PyObject *)__pyx_n_s__pos0_maxin));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pos0_maxin));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__pos1_maxin));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 50, ((PyObject *)__pyx_n_s__pos1_maxin));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__pos1_maxin));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__aeraPixel));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 51, ((PyObject *)__pyx_n_s__aeraPixel));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__aeraPixel));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__fbin0_min));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 52, ((PyObject *)__pyx_n_s__fbin0_min));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__fbin0_min));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__fbin0_max));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 53, ((PyObject *)__pyx_n_s__fbin0_max));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__fbin0_max));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__fbin1_min));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 54, ((PyObject *)__pyx_n_s__fbin1_min));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__fbin1_min));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__fbin1_max));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 55, ((PyObject *)__pyx_n_s__fbin1_max));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__fbin1_max));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__a0));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 56, ((PyObject *)__pyx_n_s__a0));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__a0));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__a1));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 57, ((PyObject *)__pyx_n_s__a1));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__a1));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__b0));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 58, ((PyObject *)__pyx_n_s__b0));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__b0));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__b1));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 59, ((PyObject *)__pyx_n_s__b1));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__b1));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__c0));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 60, ((PyObject *)__pyx_n_s__c0));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__c0));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__c1));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 61, ((PyObject *)__pyx_n_s__c1));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__c1));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__d0));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 62, ((PyObject *)__pyx_n_s__d0));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__d0));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__d1));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 63, ((PyObject *)__pyx_n_s__d1));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__d1));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__epsilon));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 64, ((PyObject *)__pyx_n_s__epsilon));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__epsilon));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__bin0_max));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 65, ((PyObject *)__pyx_n_s__bin0_max));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__bin0_max));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__bin0_min));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 66, ((PyObject *)__pyx_n_s__bin0_min));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__bin0_min));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__bin1_max));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 67, ((PyObject *)__pyx_n_s__bin1_max));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__bin1_max));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__bin1_min));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 68, ((PyObject *)__pyx_n_s__bin1_min));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__bin1_min));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__i));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 69, ((PyObject *)__pyx_n_s__i));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__i));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__j));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 70, ((PyObject *)__pyx_n_s__j));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__j));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__idx));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 71, ((PyObject *)__pyx_n_s__idx));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__idx));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__dpos0));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 72, ((PyObject *)__pyx_n_s__dpos0));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__dpos0));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__dpos1));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 73, ((PyObject *)__pyx_n_s__dpos1));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__dpos1));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__check_dummy));
  PyTuple_SET_ITEM(__pyx_k_tuple_77, 74, ((PyObject *)__pyx_n_s__check_dummy));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__check_dummy));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_77));

  /* "splitPixel.pyx":305
 * @cython.boundscheck(False)
 * @cython.wraparound(False)
 * def fullSplit2D(numpy.ndarray pos not None,             # <<<<<<<<<<<<<<
 *                 numpy.ndarray weights not None,
 *                 bins not None,
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_10splitPixel_3fullSplit2D, NULL, __pyx_n_s__splitPixel); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__fullSplit2D, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_k_codeobj_78 = (PyObject*)__Pyx_PyCode_New(12, 0, 75, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_77, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_76, __pyx_n_s__fullSplit2D, 305, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_78)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 306:                 numpy.ndarray weights not None,
 307:                 bins not None,
 308:                 pos0Range=None,
    /* "splitPixel.pyx":308
 *                 numpy.ndarray weights not None,
 *                 bins not None,
 *                 pos0Range=None,             # <<<<<<<<<<<<<<
 *                 pos1Range=None,
 *                 dummy=None,
 */
    values[3] = ((PyObject *)Py_None);
 309:                 pos1Range=None,
    /* "splitPixel.pyx":309
 *                 bins not None,
 *                 pos0Range=None,
 *                 pos1Range=None,             # <<<<<<<<<<<<<<
 *                 dummy=None,
 *                 delta_dummy=None,
 */
    values[4] = ((PyObject *)Py_None);
 310:                 dummy=None,
    /* "splitPixel.pyx":310
 *                 pos0Range=None,
 *                 pos1Range=None,
 *                 dummy=None,             # <<<<<<<<<<<<<<
 *                 delta_dummy=None,
 *                 mask=None,
 */
    values[5] = ((PyObject *)Py_None);
 311:                 delta_dummy=None,
    /* "splitPixel.pyx":311
 *                 pos1Range=None,
 *                 dummy=None,
 *                 delta_dummy=None,             # <<<<<<<<<<<<<<
 *                 mask=None,
 *                 dark=None,
 */
    values[6] = ((PyObject *)Py_None);
 312:                 mask=None,
    /* "splitPixel.pyx":312
 *                 dummy=None,
 *                 delta_dummy=None,
 *                 mask=None,             # <<<<<<<<<<<<<<
 *                 dark=None,
 *                 flat=None,
 */
    values[7] = ((PyObject *)Py_None);
 313:                 dark=None,
    /* "splitPixel.pyx":313
 *                 delta_dummy=None,
 *                 mask=None,
 *                 dark=None,             # <<<<<<<<<<<<<<
 *                 flat=None,
 *                 solidangle=None,
 */
    values[8] = ((PyObject *)Py_None);
 314:                 flat=None,
    /* "splitPixel.pyx":314
 *                 mask=None,
 *                 dark=None,
 *                 flat=None,             # <<<<<<<<<<<<<<
 *                 solidangle=None,
 *                 polarization=None):
 */
    values[9] = ((PyObject *)Py_None);
 315:                 solidangle=None,
    /* "splitPixel.pyx":315
 *                 dark=None,
 *                 flat=None,
 *                 solidangle=None,             # <<<<<<<<<<<<<<
 *                 polarization=None):
 *     """
 */
    values[10] = ((PyObject *)Py_None);
 316:                 polarization=None):
    /* "splitPixel.pyx":316
 *                 flat=None,
 *                 solidangle=None,
 *                 polarization=None):             # <<<<<<<<<<<<<<
 *     """
 *     Calculate 2D histogram of pos weighted by weights
 */
    values[11] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
        case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__pos)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__weights)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fullSplit2D", 0, 3, 12, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__bins)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fullSplit2D", 0, 3, 12, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__pos0Range);
          if (value) { values[3] = value; kw_args--; }
        }
        case  4:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__pos1Range);
          if (value) { values[4] = value; kw_args--; }
        }
        case  5:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dummy);
          if (value) { values[5] = value; kw_args--; }
        }
        case  6:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__delta_dummy);
          if (value) { values[6] = value; kw_args--; }
        }
        case  7:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__mask);
          if (value) { values[7] = value; kw_args--; }
        }
        case  8:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dark);
          if (value) { values[8] = value; kw_args--; }
        }
        case  9:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__flat);
          if (value) { values[9] = value; kw_args--; }
        }
        case 10:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__solidangle);
          if (value) { values[10] = value; kw_args--; }
        }
        case 11:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__polarization);
          if (value) { values[11] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fullSplit2D") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
        case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_pos = ((PyArrayObject *)values[0]);
    __pyx_v_weights = ((PyArrayObject *)values[1]);
    __pyx_v_bins = values[2];
    __pyx_v_pos0Range = values[3];
    __pyx_v_pos1Range = values[4];
    __pyx_v_dummy = values[5];
    __pyx_v_delta_dummy = values[6];
    __pyx_v_mask = values[7];
    __pyx_v_dark = values[8];
    __pyx_v_flat = values[9];
    __pyx_v_solidangle = values[10];
    __pyx_v_polarization = values[11];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("fullSplit2D", 0, 3, 12, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("splitPixel.fullSplit2D", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pos), __pyx_ptype_5numpy_ndarray, 0, "pos", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_weights), __pyx_ptype_5numpy_ndarray, 0, "weights", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (unlikely(((PyObject *)__pyx_v_bins) == Py_None)) {
    PyErr_Format(PyExc_TypeError, "Argument 'bins' must not be None"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_r = __pyx_pf_10splitPixel_2fullSplit2D(__pyx_self, __pyx_v_pos, __pyx_v_weights, __pyx_v_bins, __pyx_v_pos0Range, __pyx_v_pos1Range, __pyx_v_dummy, __pyx_v_delta_dummy, __pyx_v_mask, __pyx_v_dark, __pyx_v_flat, __pyx_v_solidangle, __pyx_v_polarization);
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 317:     """
 318:     Calculate 2D histogram of pos weighted by weights
 319: 
 320:     Splitting is done on the pixel's bounding box like fit2D
 321: 
 322: 
 323:     @param pos: 3D array with pos0; Corner A,B,C,D; tth or chi
 324:     @param weights: array with intensities
 325:     @param bins: number of output bins int or 2-tuple of int
 326:     @param pos0Range: minimum and maximum  of the 2th range
 327:     @param pos1Range: minimum and maximum  of the chi range
 328:     @param dummy: value for bins without pixels
 329:     @param delta_dummy: precision of dummy value
 330:     @param mask: array (of int8) with masked pixels with 1 (0=not masked)
 331:     @param dark: array (of float64) with dark noise to be subtracted (or None)
 332:     @param flat: array (of float64) with flat-field image
 333:     @param polarization: array (of float64) with polarization correction
 334:     @param solidangle: array (of float64)with solid angle corrections
 335:     @return  I, edges0, edges1, weighted histogram(2D), unweighted histogram (2D)
 336:     """
 337: 
 338:     cdef size_t  bins0=0, bins1=0, size = weights.size
  /* "splitPixel.pyx":338
 *     """
 * 
 *     cdef size_t  bins0=0, bins1=0, size = weights.size             # <<<<<<<<<<<<<<
 *     if pos.ndim>3: #create a view
 *         pos = pos.reshape((-1,4,2))
 */
  __pyx_v_bins0 = 0;
  __pyx_v_bins1 = 0;
  __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_weights), __pyx_n_s__size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_AsSize_t(__pyx_t_1); if (unlikely((__pyx_t_2 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_size = __pyx_t_2;
 339:     if pos.ndim>3: #create a view
  /* "splitPixel.pyx":339
 * 
 *     cdef size_t  bins0=0, bins1=0, size = weights.size
 *     if pos.ndim>3: #create a view             # <<<<<<<<<<<<<<
 *         pos = pos.reshape((-1,4,2))
 * 
 */
  __pyx_t_3 = (__pyx_v_pos->nd > 3);
  if (__pyx_t_3) {
 340:         pos = pos.reshape((-1,4,2))
    /* "splitPixel.pyx":340
 *     cdef size_t  bins0=0, bins1=0, size = weights.size
 *     if pos.ndim>3: #create a view
 *         pos = pos.reshape((-1,4,2))             # <<<<<<<<<<<<<<
 * 
 *     assert pos.shape[0] == size
 */
    __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_pos), __pyx_n_s__reshape); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);

  /* "splitPixel.pyx":340
 *     cdef size_t  bins0=0, bins1=0, size = weights.size
 *     if pos.ndim>3: #create a view
 *         pos = pos.reshape((-1,4,2))             # <<<<<<<<<<<<<<
 * 
 *     assert pos.shape[0] == size
 */
  __pyx_k_tuple_15 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_tuple_15);
  __Pyx_INCREF(__pyx_int_neg_1);
  PyTuple_SET_ITEM(__pyx_k_tuple_15, 0, __pyx_int_neg_1);
  __Pyx_GIVEREF(__pyx_int_neg_1);
  __Pyx_INCREF(__pyx_int_4);
  PyTuple_SET_ITEM(__pyx_k_tuple_15, 1, __pyx_int_4);
  __Pyx_GIVEREF(__pyx_int_4);
  __Pyx_INCREF(__pyx_int_2);
  PyTuple_SET_ITEM(__pyx_k_tuple_15, 2, __pyx_int_2);
  __Pyx_GIVEREF(__pyx_int_2);
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_15));
    __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_16), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(((PyObject *)__pyx_v_pos));
    __pyx_v_pos = ((PyArrayObject *)__pyx_t_4);
    __pyx_t_4 = 0;
    goto __pyx_L3;
  }
  __pyx_L3:;
  __pyx_k_tuple_16 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_tuple_16);
  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_15));
  PyTuple_SET_ITEM(__pyx_k_tuple_16, 0, ((PyObject *)__pyx_k_tuple_15));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_15));
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_16));
 341: 
 342:     assert pos.shape[0] == size
  /* "splitPixel.pyx":342
 *         pos = pos.reshape((-1,4,2))
 * 
 *     assert pos.shape[0] == size             # <<<<<<<<<<<<<<
 *     assert pos.shape[1] == 4 # 4 corners
 *     assert pos.shape[2] == 2 # tth and chi
 */
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(!((__pyx_v_pos->dimensions[0]) == __pyx_v_size))) {
    PyErr_SetNone(PyExc_AssertionError);
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  #endif
 343:     assert pos.shape[1] == 4 # 4 corners
  /* "splitPixel.pyx":343
 * 
 *     assert pos.shape[0] == size
 *     assert pos.shape[1] == 4 # 4 corners             # <<<<<<<<<<<<<<
 *     assert pos.shape[2] == 2 # tth and chi
 *     assert pos.ndim == 3
 */
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(!((__pyx_v_pos->dimensions[1]) == 4))) {
    PyErr_SetNone(PyExc_AssertionError);
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  #endif
 344:     assert pos.shape[2] == 2 # tth and chi
  /* "splitPixel.pyx":344
 *     assert pos.shape[0] == size
 *     assert pos.shape[1] == 4 # 4 corners
 *     assert pos.shape[2] == 2 # tth and chi             # <<<<<<<<<<<<<<
 *     assert pos.ndim == 3
 *     try:
 */
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(!((__pyx_v_pos->dimensions[2]) == 2))) {
    PyErr_SetNone(PyExc_AssertionError);
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 344; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  #endif
 345:     assert pos.ndim == 3
  /* "splitPixel.pyx":345
 *     assert pos.shape[1] == 4 # 4 corners
 *     assert pos.shape[2] == 2 # tth and chi
 *     assert pos.ndim == 3             # <<<<<<<<<<<<<<
 *     try:
 *         bins0, bins1 = tuple(bins)
 */
  #ifndef CYTHON_WITHOUT_ASSERTIONS
  if (unlikely(!(__pyx_v_pos->nd == 3))) {
    PyErr_SetNone(PyExc_AssertionError);
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  #endif
 346:     try:
  /* "splitPixel.pyx":346
 *     assert pos.shape[2] == 2 # tth and chi
 *     assert pos.ndim == 3
 *     try:             # <<<<<<<<<<<<<<
 *         bins0, bins1 = tuple(bins)
 *     except:
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7);
    __Pyx_XGOTREF(__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_6);
    __Pyx_XGOTREF(__pyx_t_7);
    /*try:*/ {
 347:         bins0, bins1 = tuple(bins)
      /* "splitPixel.pyx":347
 *     assert pos.ndim == 3
 *     try:
 *         bins0, bins1 = tuple(bins)             # <<<<<<<<<<<<<<
 *     except:
 *         bins0 = bins1 = < size_t > bins
 */
      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_bins);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_bins);
      __Pyx_GIVEREF(__pyx_v_bins);
      __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyTuple_Type))), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
      if (1) {
        PyObject* sequence = __pyx_t_1;
        #if CYTHON_COMPILING_IN_CPYTHON
        Py_ssize_t size = Py_SIZE(sequence);
        #else
        Py_ssize_t size = PySequence_Size(sequence);
        #endif
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
        }
        #if CYTHON_COMPILING_IN_CPYTHON
        __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); 
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_8);
        #else
        __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
        __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
        #endif
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      } else if (1) {
        __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
      } else
      {
        Py_ssize_t index = -1;
        __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext;
        index = 0; __pyx_t_4 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_4)) goto __pyx_L12_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_4);
        index = 1; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L12_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_8);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
        __pyx_t_10 = NULL;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        goto __pyx_L13_unpacking_done;
        __pyx_L12_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_10 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
        __pyx_L13_unpacking_done:;
      }
      __pyx_t_2 = __Pyx_PyInt_AsSize_t(__pyx_t_4); if (unlikely((__pyx_t_2 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_11 = __Pyx_PyInt_AsSize_t(__pyx_t_8); if (unlikely((__pyx_t_11 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_v_bins0 = __pyx_t_2;
      __pyx_v_bins1 = __pyx_t_11;
    }
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    goto __pyx_L11_try_end;
    __pyx_L4_error:;
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
 348:     except:
    /* "splitPixel.pyx":348
 *     try:
 *         bins0, bins1 = tuple(bins)
 *     except:             # <<<<<<<<<<<<<<
 *         bins0 = bins1 = < size_t > bins
 *     if bins0 <= 0:
 */
    /*except:*/ {
      __Pyx_AddTraceback("splitPixel.fullSplit2D", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_GOTREF(__pyx_t_4);
 349:         bins0 = bins1 = < size_t > bins
      /* "splitPixel.pyx":349
 *         bins0, bins1 = tuple(bins)
 *     except:
 *         bins0 = bins1 = < size_t > bins             # <<<<<<<<<<<<<<
 *     if bins0 <= 0:
 *         bins0 = 1
 */
      __pyx_t_11 = __Pyx_PyInt_AsSize_t(__pyx_v_bins); if (unlikely((__pyx_t_11 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
      __pyx_v_bins0 = ((size_t)__pyx_t_11);
      __pyx_v_bins1 = ((size_t)__pyx_t_11);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L5_exception_handled;
    }
    __pyx_L6_except_error:;
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
    goto __pyx_L1_error;
    __pyx_L5_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
    __pyx_L11_try_end:;
  }
 350:     if bins0 <= 0:
  /* "splitPixel.pyx":350
 *     except:
 *         bins0 = bins1 = < size_t > bins
 *     if bins0 <= 0:             # <<<<<<<<<<<<<<
 *         bins0 = 1
 *     if bins1 <= 0:
 */
  __pyx_t_3 = (__pyx_v_bins0 <= 0);
  if (__pyx_t_3) {
 351:         bins0 = 1
    /* "splitPixel.pyx":351
 *         bins0 = bins1 = < size_t > bins
 *     if bins0 <= 0:
 *         bins0 = 1             # <<<<<<<<<<<<<<
 *     if bins1 <= 0:
 *         bins1 = 1
 */
    __pyx_v_bins0 = 1;
    goto __pyx_L16;
  }
  __pyx_L16:;
 352:     if bins1 <= 0:
  /* "splitPixel.pyx":352
 *     if bins0 <= 0:
 *         bins0 = 1
 *     if bins1 <= 0:             # <<<<<<<<<<<<<<
 *         bins1 = 1
 * 
 */
  __pyx_t_3 = (__pyx_v_bins1 <= 0);
  if (__pyx_t_3) {
 353:         bins1 = 1
    /* "splitPixel.pyx":353
 *         bins0 = 1
 *     if bins1 <= 0:
 *         bins1 = 1             # <<<<<<<<<<<<<<
 * 
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 3] cpos = pos.astype(numpy.float64)
 */
    __pyx_v_bins1 = 1;
    goto __pyx_L17;
  }
  __pyx_L17:;
 354: 
 355:     cdef numpy.ndarray[numpy.float64_t, ndim = 3] cpos = pos.astype(numpy.float64)
  /* "splitPixel.pyx":355
 *         bins1 = 1
 * 
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 3] cpos = pos.astype(numpy.float64)             # <<<<<<<<<<<<<<
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 1] cdata = weights.astype(numpy.float64).ravel()
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 2] outData = numpy.zeros((bins0, bins1), dtype=numpy.float64)
 */
  __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_v_pos), __pyx_n_s__astype); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 355; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 355; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__float64); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 355; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 355; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 355; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 355; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_12 = ((PyArrayObject *)__pyx_t_1);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cpos.rcbuffer->pybuffer, (PyObject*)__pyx_t_12, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 3, 0, __pyx_stack) == -1)) {
      __pyx_v_cpos = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_cpos.rcbuffer->pybuffer.buf = NULL;
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 355; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    } else {__pyx_pybuffernd_cpos.diminfo[0].strides = __pyx_pybuffernd_cpos.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_cpos.diminfo[0].shape = __pyx_pybuffernd_cpos.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_cpos.diminfo[1].strides = __pyx_pybuffernd_cpos.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_cpos.diminfo[1].shape = __pyx_pybuffernd_cpos.rcbuffer->pybuffer.shape[1]; __pyx_pybuffernd_cpos.diminfo[2].strides = __pyx_pybuffernd_cpos.rcbuffer->pybuffer.strides[2]; __pyx_pybuffernd_cpos.diminfo[2].shape = __pyx_pybuffernd_cpos.rcbuffer->pybuffer.shape[2];
    }
  }
  __pyx_t_12 = 0;
  __pyx_v_cpos = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;
 356:     cdef numpy.ndarray[numpy.float64_t, ndim = 1] cdata = weights.astype(numpy.float64).ravel()
  /* "splitPixel.pyx":356
 * 
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 3] cpos = pos.astype(numpy.float64)
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 1] cdata = weights.astype(numpy.float64).ravel()             # <<<<<<<<<<<<<<
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 2] outData = numpy.zeros((bins0, bins1), dtype=numpy.float64)
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 2] outCount = numpy.zeros((bins0, bins1), dtype=numpy.float64)
 */
  __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_weights), __pyx_n_s__astype); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_4 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__float64); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
  __pyx_t_8 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__ravel); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_13 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_cdata.rcbuffer->pybuffer, (PyObject*)__pyx_t_13, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
      __pyx_v_cdata = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_cdata.rcbuffer->pybuffer.buf = NULL;
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    } else {__pyx_pybuffernd_cdata.diminfo[0].strides = __pyx_pybuffernd_cdata.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_cdata.diminfo[0].shape = __pyx_pybuffernd_cdata.rcbuffer->pybuffer.shape[0];
    }
  }
  __pyx_t_13 = 0;
  __pyx_v_cdata = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
 357:     cdef numpy.ndarray[numpy.float64_t, ndim = 2] outData = numpy.zeros((bins0, bins1), dtype=numpy.float64)
  /* "splitPixel.pyx":357
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 3] cpos = pos.astype(numpy.float64)
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 1] cdata = weights.astype(numpy.float64).ravel()
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 2] outData = numpy.zeros((bins0, bins1), dtype=numpy.float64)             # <<<<<<<<<<<<<<
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 2] outCount = numpy.zeros((bins0, bins1), dtype=numpy.float64)
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 2] outMerge = numpy.zeros((bins0, bins1), dtype=numpy.float64)
 */
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_8 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__zeros); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_v_bins0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_bins1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_4 = 0;
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_t_9));
  __Pyx_GIVEREF(((PyObject *)__pyx_t_9));
  __pyx_t_9 = 0;
  __pyx_t_9 = PyDict_New(); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_9));
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_14 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__float64); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_t_9, ((PyObject *)__pyx_n_s__dtype), __pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_t_14 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_9)); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_outData.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) {
      __pyx_v_outData = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_outData.rcbuffer->pybuffer.buf = NULL;
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    } else {__pyx_pybuffernd_outData.diminfo[0].strides = __pyx_pybuffernd_outData.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_outData.diminfo[0].shape = __pyx_pybuffernd_outData.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_outData.diminfo[1].strides = __pyx_pybuffernd_outData.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_outData.diminfo[1].shape = __pyx_pybuffernd_outData.rcbuffer->pybuffer.shape[1];
    }
  }
  __pyx_t_15 = 0;
  __pyx_v_outData = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
 358:     cdef numpy.ndarray[numpy.float64_t, ndim = 2] outCount = numpy.zeros((bins0, bins1), dtype=numpy.float64)
  /* "splitPixel.pyx":358
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 1] cdata = weights.astype(numpy.float64).ravel()
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 2] outData = numpy.zeros((bins0, bins1), dtype=numpy.float64)
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 2] outCount = numpy.zeros((bins0, bins1), dtype=numpy.float64)             # <<<<<<<<<<<<<<
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 2] outMerge = numpy.zeros((bins0, bins1), dtype=numpy.float64)
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 1] edges0 = numpy.zeros(bins0, dtype=numpy.float64)
 */
  __pyx_t_14 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_9 = PyObject_GetAttr(__pyx_t_14, __pyx_n_s__zeros); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_t_14 = __Pyx_PyInt_FromSize_t(__pyx_v_bins0); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_bins1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_14);
  __Pyx_GIVEREF(__pyx_t_14);
  PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_14 = 0;
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_t_8));
  __Pyx_GIVEREF(((PyObject *)__pyx_t_8));
  __pyx_t_8 = 0;
  __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_8));
  __pyx_t_14 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_4 = PyObject_GetAttr(__pyx_t_14, __pyx_n_s__float64); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  if (PyDict_SetItem(__pyx_t_8, ((PyObject *)__pyx_n_s__dtype), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_8)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_16 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_outCount.rcbuffer->pybuffer, (PyObject*)__pyx_t_16, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) {
      __pyx_v_outCount = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_outCount.rcbuffer->pybuffer.buf = NULL;
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    } else {__pyx_pybuffernd_outCount.diminfo[0].strides = __pyx_pybuffernd_outCount.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_outCount.diminfo[0].shape = __pyx_pybuffernd_outCount.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_outCount.diminfo[1].strides = __pyx_pybuffernd_outCount.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_outCount.diminfo[1].shape = __pyx_pybuffernd_outCount.rcbuffer->pybuffer.shape[1];
    }
  }
  __pyx_t_16 = 0;
  __pyx_v_outCount = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
 359:     cdef numpy.ndarray[numpy.float64_t, ndim = 2] outMerge = numpy.zeros((bins0, bins1), dtype=numpy.float64)
  /* "splitPixel.pyx":359
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 2] outData = numpy.zeros((bins0, bins1), dtype=numpy.float64)
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 2] outCount = numpy.zeros((bins0, bins1), dtype=numpy.float64)
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 2] outMerge = numpy.zeros((bins0, bins1), dtype=numpy.float64)             # <<<<<<<<<<<<<<
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 1] edges0 = numpy.zeros(bins0, dtype=numpy.float64)
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 1] edges1 = numpy.zeros(bins1, dtype=numpy.float64)
 */
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_8 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__zeros); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_v_bins0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_bins1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_4 = 0;
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_t_9));
  __Pyx_GIVEREF(((PyObject *)__pyx_t_9));
  __pyx_t_9 = 0;
  __pyx_t_9 = PyDict_New(); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_9));
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_14 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__float64); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_t_9, ((PyObject *)__pyx_n_s__dtype), __pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_t_14 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_9)); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_17 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_outMerge.rcbuffer->pybuffer, (PyObject*)__pyx_t_17, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) {
      __pyx_v_outMerge = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_outMerge.rcbuffer->pybuffer.buf = NULL;
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    } else {__pyx_pybuffernd_outMerge.diminfo[0].strides = __pyx_pybuffernd_outMerge.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_outMerge.diminfo[0].shape = __pyx_pybuffernd_outMerge.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_outMerge.diminfo[1].strides = __pyx_pybuffernd_outMerge.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_outMerge.diminfo[1].shape = __pyx_pybuffernd_outMerge.rcbuffer->pybuffer.shape[1];
    }
  }
  __pyx_t_17 = 0;
  __pyx_v_outMerge = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
 360:     cdef numpy.ndarray[numpy.float64_t, ndim = 1] edges0 = numpy.zeros(bins0, dtype=numpy.float64)
  /* "splitPixel.pyx":360
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 2] outCount = numpy.zeros((bins0, bins1), dtype=numpy.float64)
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 2] outMerge = numpy.zeros((bins0, bins1), dtype=numpy.float64)
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 1] edges0 = numpy.zeros(bins0, dtype=numpy.float64)             # <<<<<<<<<<<<<<
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 1] edges1 = numpy.zeros(bins1, dtype=numpy.float64)
 *     cdef numpy.int8_t[:] cmask
 */
  __pyx_t_14 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_9 = PyObject_GetAttr(__pyx_t_14, __pyx_n_s__zeros); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_t_14 = __Pyx_PyInt_FromSize_t(__pyx_v_bins0); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_14);
  __Pyx_GIVEREF(__pyx_t_14);
  __pyx_t_14 = 0;
  __pyx_t_14 = PyDict_New(); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_14));
  __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_4 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__float64); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_14, ((PyObject *)__pyx_n_s__dtype), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_14)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_18 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_edges0.rcbuffer->pybuffer, (PyObject*)__pyx_t_18, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
      __pyx_v_edges0 = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_edges0.rcbuffer->pybuffer.buf = NULL;
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    } else {__pyx_pybuffernd_edges0.diminfo[0].strides = __pyx_pybuffernd_edges0.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_edges0.diminfo[0].shape = __pyx_pybuffernd_edges0.rcbuffer->pybuffer.shape[0];
    }
  }
  __pyx_t_18 = 0;
  __pyx_v_edges0 = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
 361:     cdef numpy.ndarray[numpy.float64_t, ndim = 1] edges1 = numpy.zeros(bins1, dtype=numpy.float64)
  /* "splitPixel.pyx":361
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 2] outMerge = numpy.zeros((bins0, bins1), dtype=numpy.float64)
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 1] edges0 = numpy.zeros(bins0, dtype=numpy.float64)
 *     cdef numpy.ndarray[numpy.float64_t, ndim = 1] edges1 = numpy.zeros(bins1, dtype=numpy.float64)             # <<<<<<<<<<<<<<
 *     cdef numpy.int8_t[:] cmask
 *     cdef double[:] cflat, cdark, cpolarization, csolidangle
 */
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_14 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__zeros); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_v_bins1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_8 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__float64); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__dtype), __pyx_t_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyObject_Call(__pyx_t_14, ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_19 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_edges1.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
      __pyx_v_edges1 = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_edges1.rcbuffer->pybuffer.buf = NULL;
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    } else {__pyx_pybuffernd_edges1.diminfo[0].strides = __pyx_pybuffernd_edges1.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_edges1.diminfo[0].shape = __pyx_pybuffernd_edges1.rcbuffer->pybuffer.shape[0];
    }
  }
  __pyx_t_19 = 0;
  __pyx_v_edges1 = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
 362:     cdef numpy.int8_t[:] cmask
 363:     cdef double[:] cflat, cdark, cpolarization, csolidangle
 364: 
 365:     cdef bint check_mask=False, do_dummy=False, do_dark=False, do_flat=False, do_polarization=False, do_solidangle=False
  /* "splitPixel.pyx":365
 *     cdef double[:] cflat, cdark, cpolarization, csolidangle
 * 
 *     cdef bint check_mask=False, do_dummy=False, do_dark=False, do_flat=False, do_polarization=False, do_solidangle=False             # <<<<<<<<<<<<<<
 * 
 *     cdef double cdummy=0, cddummy=0, data=0
 */
  __pyx_v_check_mask = 0;
  __pyx_v_do_dummy = 0;
  __pyx_v_do_dark = 0;
  __pyx_v_do_flat = 0;
  __pyx_v_do_polarization = 0;
  __pyx_v_do_solidangle = 0;
 366: 
 367:     cdef double cdummy=0, cddummy=0, data=0
  /* "splitPixel.pyx":367
 *     cdef bint check_mask=False, do_dummy=False, do_dark=False, do_flat=False, do_polarization=False, do_solidangle=False
 * 
 *     cdef double cdummy=0, cddummy=0, data=0             # <<<<<<<<<<<<<<
 *     cdef double min0=0, max0=0, min1=0, max1=0, deltaR=0, deltaL=0, deltaU=0, deltaD=0, deltaA=0
 *     cdef double pos0_min=0, pos0_max=0, pos1_min=0, pos1_max=0, pos0_maxin=0, pos1_maxin=0
 */
  __pyx_v_cdummy = 0.0;
  __pyx_v_cddummy = 0.0;
  __pyx_v_data = 0.0;
 368:     cdef double min0=0, max0=0, min1=0, max1=0, deltaR=0, deltaL=0, deltaU=0, deltaD=0, deltaA=0
  /* "splitPixel.pyx":368
 * 
 *     cdef double cdummy=0, cddummy=0, data=0
 *     cdef double min0=0, max0=0, min1=0, max1=0, deltaR=0, deltaL=0, deltaU=0, deltaD=0, deltaA=0             # <<<<<<<<<<<<<<
 *     cdef double pos0_min=0, pos0_max=0, pos1_min=0, pos1_max=0, pos0_maxin=0, pos1_maxin=0
 *     cdef double aeraPixel=0, fbin0_min=0, fbin0_max=0, fbin1_min=0, fbin1_max=0
 */
  __pyx_v_min0 = 0.0;
  __pyx_v_max0 = 0.0;
  __pyx_v_min1 = 0.0;
  __pyx_v_max1 = 0.0;
  __pyx_v_deltaR = 0.0;
  __pyx_v_deltaL = 0.0;
  __pyx_v_deltaU = 0.0;
  __pyx_v_deltaD = 0.0;
  __pyx_v_deltaA = 0.0;
 369:     cdef double pos0_min=0, pos0_max=0, pos1_min=0, pos1_max=0, pos0_maxin=0, pos1_maxin=0
  /* "splitPixel.pyx":369
 *     cdef double cdummy=0, cddummy=0, data=0
 *     cdef double min0=0, max0=0, min1=0, max1=0, deltaR=0, deltaL=0, deltaU=0, deltaD=0, deltaA=0
 *     cdef double pos0_min=0, pos0_max=0, pos1_min=0, pos1_max=0, pos0_maxin=0, pos1_maxin=0             # <<<<<<<<<<<<<<
 *     cdef double aeraPixel=0, fbin0_min=0, fbin0_max=0, fbin1_min=0, fbin1_max=0
 *     cdef double a0=0, a1=0, b0=0, b1=0, c0=0, c1=0, d0=0, d1=0
 */
  __pyx_v_pos0_min = 0.0;
  __pyx_v_pos0_max = 0.0;
  __pyx_v_pos1_min = 0.0;
  __pyx_v_pos1_max = 0.0;
  __pyx_v_pos0_maxin = 0.0;
  __pyx_v_pos1_maxin = 0.0;
 370:     cdef double aeraPixel=0, fbin0_min=0, fbin0_max=0, fbin1_min=0, fbin1_max=0
  /* "splitPixel.pyx":370
 *     cdef double min0=0, max0=0, min1=0, max1=0, deltaR=0, deltaL=0, deltaU=0, deltaD=0, deltaA=0
 *     cdef double pos0_min=0, pos0_max=0, pos1_min=0, pos1_max=0, pos0_maxin=0, pos1_maxin=0
 *     cdef double aeraPixel=0, fbin0_min=0, fbin0_max=0, fbin1_min=0, fbin1_max=0             # <<<<<<<<<<<<<<
 *     cdef double a0=0, a1=0, b0=0, b1=0, c0=0, c1=0, d0=0, d1=0
 *     cdef double epsilon = 1e-10
 */
  __pyx_v_aeraPixel = 0.0;
  __pyx_v_fbin0_min = 0.0;
  __pyx_v_fbin0_max = 0.0;
  __pyx_v_fbin1_min = 0.0;
  __pyx_v_fbin1_max = 0.0;
 371:     cdef double a0=0, a1=0, b0=0, b1=0, c0=0, c1=0, d0=0, d1=0
  /* "splitPixel.pyx":371
 *     cdef double pos0_min=0, pos0_max=0, pos1_min=0, pos1_max=0, pos0_maxin=0, pos1_maxin=0
 *     cdef double aeraPixel=0, fbin0_min=0, fbin0_max=0, fbin1_min=0, fbin1_max=0
 *     cdef double a0=0, a1=0, b0=0, b1=0, c0=0, c1=0, d0=0, d1=0             # <<<<<<<<<<<<<<
 *     cdef double epsilon = 1e-10
 * 
 */
  __pyx_v_a0 = 0.0;
  __pyx_v_a1 = 0.0;
  __pyx_v_b0 = 0.0;
  __pyx_v_b1 = 0.0;
  __pyx_v_c0 = 0.0;
  __pyx_v_c1 = 0.0;
  __pyx_v_d0 = 0.0;
  __pyx_v_d1 = 0.0;
 372:     cdef double epsilon = 1e-10
  /* "splitPixel.pyx":372
 *     cdef double aeraPixel=0, fbin0_min=0, fbin0_max=0, fbin1_min=0, fbin1_max=0
 *     cdef double a0=0, a1=0, b0=0, b1=0, c0=0, c1=0, d0=0, d1=0
 *     cdef double epsilon = 1e-10             # <<<<<<<<<<<<<<
 * 
 *     cdef size_t bin0_max=0, bin0_min=0, bin1_max=0, bin1_min=0, i=0, j=0, idx=0
 */
  __pyx_v_epsilon = 1e-10;
 373: 
 374:     cdef size_t bin0_max=0, bin0_min=0, bin1_max=0, bin1_min=0, i=0, j=0, idx=0
  /* "splitPixel.pyx":374
 *     cdef double epsilon = 1e-10
 * 
 *     cdef size_t bin0_max=0, bin0_min=0, bin1_max=0, bin1_min=0, i=0, j=0, idx=0             # <<<<<<<<<<<<<<
 * 
 *     if pos0Range is not None and len(pos0Range) == 2:
 */
  __pyx_v_bin0_max = 0;
  __pyx_v_bin0_min = 0;
  __pyx_v_bin1_max = 0;
  __pyx_v_bin1_min = 0;
  __pyx_v_i = 0;
  __pyx_v_j = 0;
  __pyx_v_idx = 0;
 375: 
 376:     if pos0Range is not None and len(pos0Range) == 2:
  /* "splitPixel.pyx":376
 *     cdef size_t bin0_max=0, bin0_min=0, bin1_max=0, bin1_min=0, i=0, j=0, idx=0
 * 
 *     if pos0Range is not None and len(pos0Range) == 2:             # <<<<<<<<<<<<<<
 *         pos0_min = min(pos0Range)
 *         pos0_maxin = max(pos0Range)
 */
  __pyx_t_3 = (__pyx_v_pos0Range != Py_None);
  if (__pyx_t_3) {
    __pyx_t_20 = PyObject_Length(__pyx_v_pos0Range); if (unlikely(__pyx_t_20 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_21 = (__pyx_t_20 == 2);
    __pyx_t_22 = __pyx_t_21;
  } else {
    __pyx_t_22 = __pyx_t_3;
  }
  if (__pyx_t_22) {
 377:         pos0_min = min(pos0Range)
    /* "splitPixel.pyx":377
 * 
 *     if pos0Range is not None and len(pos0Range) == 2:
 *         pos0_min = min(pos0Range)             # <<<<<<<<<<<<<<
 *         pos0_maxin = max(pos0Range)
 *     else:
 */
    __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(__pyx_v_pos0Range);
    PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_pos0Range);
    __Pyx_GIVEREF(__pyx_v_pos0Range);
    __pyx_t_4 = PyObject_Call(__pyx_builtin_min, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
    __pyx_t_23 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_23 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_pos0_min = __pyx_t_23;
 378:         pos0_maxin = max(pos0Range)
    /* "splitPixel.pyx":378
 *     if pos0Range is not None and len(pos0Range) == 2:
 *         pos0_min = min(pos0Range)
 *         pos0_maxin = max(pos0Range)             # <<<<<<<<<<<<<<
 *     else:
 *         pos0_min = pos[:, :, 0].min()
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos0Range);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos0Range);
    __Pyx_GIVEREF(__pyx_v_pos0Range);
    __pyx_t_8 = PyObject_Call(__pyx_builtin_max, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    __pyx_t_23 = __pyx_PyFloat_AsDouble(__pyx_t_8); if (unlikely((__pyx_t_23 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_v_pos0_maxin = __pyx_t_23;
    goto __pyx_L18;
  }
  /*else*/ {
 379:     else:
 380:         pos0_min = pos[:, :, 0].min()
  /* "splitPixel.pyx":380
 *         pos0_maxin = max(pos0Range)
 *     else:
 *         pos0_min = pos[:, :, 0].min()             # <<<<<<<<<<<<<<
 *         pos0_maxin = pos[:, :, 0].max()
 *     pos0_max = pos0_maxin * (1 + numpy.finfo(numpy.float32).eps)
 */
  __pyx_k_slice_17 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_slice_17);
  __Pyx_GIVEREF(__pyx_k_slice_17);
  __pyx_k_slice_18 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_slice_18);
  __Pyx_GIVEREF(__pyx_k_slice_18);

    /* "splitPixel.pyx":380
 *         pos0_maxin = max(pos0Range)
 *     else:
 *         pos0_min = pos[:, :, 0].min()             # <<<<<<<<<<<<<<
 *         pos0_maxin = pos[:, :, 0].max()
 *     pos0_max = pos0_maxin * (1 + numpy.finfo(numpy.float32).eps)
 */
    __pyx_t_8 = PyObject_GetItem(((PyObject *)__pyx_v_pos), ((PyObject *)__pyx_k_tuple_19)); if (!__pyx_t_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__min); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_23 = __pyx_PyFloat_AsDouble(__pyx_t_8); if (unlikely((__pyx_t_23 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_v_pos0_min = __pyx_t_23;
  __pyx_k_tuple_19 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_tuple_19);
  __Pyx_INCREF(__pyx_k_slice_17);
  PyTuple_SET_ITEM(__pyx_k_tuple_19, 0, __pyx_k_slice_17);
  __Pyx_GIVEREF(__pyx_k_slice_17);
  __Pyx_INCREF(__pyx_k_slice_18);
  PyTuple_SET_ITEM(__pyx_k_tuple_19, 1, __pyx_k_slice_18);
  __Pyx_GIVEREF(__pyx_k_slice_18);
  __Pyx_INCREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_k_tuple_19, 2, __pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_19));
 381:         pos0_maxin = pos[:, :, 0].max()
  /* "splitPixel.pyx":381
 *     else:
 *         pos0_min = pos[:, :, 0].min()
 *         pos0_maxin = pos[:, :, 0].max()             # <<<<<<<<<<<<<<
 *     pos0_max = pos0_maxin * (1 + numpy.finfo(numpy.float32).eps)
 * 
 */
  __pyx_k_slice_20 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_20)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_slice_20);
  __Pyx_GIVEREF(__pyx_k_slice_20);
  __pyx_k_slice_21 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_21)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_slice_21);
  __Pyx_GIVEREF(__pyx_k_slice_21);

    /* "splitPixel.pyx":381
 *     else:
 *         pos0_min = pos[:, :, 0].min()
 *         pos0_maxin = pos[:, :, 0].max()             # <<<<<<<<<<<<<<
 *     pos0_max = pos0_maxin * (1 + numpy.finfo(numpy.float32).eps)
 * 
 */
    __pyx_t_8 = PyObject_GetItem(((PyObject *)__pyx_v_pos), ((PyObject *)__pyx_k_tuple_22)); if (!__pyx_t_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__max); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_23 = __pyx_PyFloat_AsDouble(__pyx_t_8); if (unlikely((__pyx_t_23 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_v_pos0_maxin = __pyx_t_23;
  }
  __pyx_L18:;
  __pyx_k_tuple_22 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_tuple_22);
  __Pyx_INCREF(__pyx_k_slice_20);
  PyTuple_SET_ITEM(__pyx_k_tuple_22, 0, __pyx_k_slice_20);
  __Pyx_GIVEREF(__pyx_k_slice_20);
  __Pyx_INCREF(__pyx_k_slice_21);
  PyTuple_SET_ITEM(__pyx_k_tuple_22, 1, __pyx_k_slice_21);
  __Pyx_GIVEREF(__pyx_k_slice_21);
  __Pyx_INCREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_k_tuple_22, 2, __pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_22));
 382:     pos0_max = pos0_maxin * (1 + numpy.finfo(numpy.float32).eps)
  /* "splitPixel.pyx":382
 *         pos0_min = pos[:, :, 0].min()
 *         pos0_maxin = pos[:, :, 0].max()
 *     pos0_max = pos0_maxin * (1 + numpy.finfo(numpy.float32).eps)             # <<<<<<<<<<<<<<
 * 
 *     if pos1Range is not None and len(pos1Range) > 1:
 */
  __pyx_t_8 = PyFloat_FromDouble(__pyx_v_pos0_maxin); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__finfo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_14 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__float32); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_14);
  __Pyx_GIVEREF(__pyx_t_14);
  __pyx_t_14 = 0;
  __pyx_t_14 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_GetAttr(__pyx_t_14, __pyx_n_s__eps); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_t_14 = PyNumber_Add(__pyx_int_1, __pyx_t_4); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_8, __pyx_t_14); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_t_23 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_23 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_pos0_max = __pyx_t_23;
 383: 
 384:     if pos1Range is not None and len(pos1Range) > 1:
  /* "splitPixel.pyx":384
 *     pos0_max = pos0_maxin * (1 + numpy.finfo(numpy.float32).eps)
 * 
 *     if pos1Range is not None and len(pos1Range) > 1:             # <<<<<<<<<<<<<<
 *         pos1_min = min(pos1Range)
 *         pos1_maxin = max(pos1Range)
 */
  __pyx_t_22 = (__pyx_v_pos1Range != Py_None);
  if (__pyx_t_22) {
    __pyx_t_20 = PyObject_Length(__pyx_v_pos1Range); if (unlikely(__pyx_t_20 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = (__pyx_t_20 > 1);
    __pyx_t_21 = __pyx_t_3;
  } else {
    __pyx_t_21 = __pyx_t_22;
  }
  if (__pyx_t_21) {
 385:         pos1_min = min(pos1Range)
    /* "splitPixel.pyx":385
 * 
 *     if pos1Range is not None and len(pos1Range) > 1:
 *         pos1_min = min(pos1Range)             # <<<<<<<<<<<<<<
 *         pos1_maxin = max(pos1Range)
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_pos1Range);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pos1Range);
    __Pyx_GIVEREF(__pyx_v_pos1Range);
    __pyx_t_14 = PyObject_Call(__pyx_builtin_min, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    __pyx_t_23 = __pyx_PyFloat_AsDouble(__pyx_t_14); if (unlikely((__pyx_t_23 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __pyx_v_pos1_min = __pyx_t_23;
 386:         pos1_maxin = max(pos1Range)
    /* "splitPixel.pyx":386
 *     if pos1Range is not None and len(pos1Range) > 1:
 *         pos1_min = min(pos1Range)
 *         pos1_maxin = max(pos1Range)             # <<<<<<<<<<<<<<
 *     else:
 *         pos1_min = pos[:, :, 1].min()
 */
    __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_INCREF(__pyx_v_pos1Range);
    PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_v_pos1Range);
    __Pyx_GIVEREF(__pyx_v_pos1Range);
    __pyx_t_4 = PyObject_Call(__pyx_builtin_max, ((PyObject *)__pyx_t_14), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
    __pyx_t_23 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_23 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_pos1_maxin = __pyx_t_23;
    goto __pyx_L19;
  }
  /*else*/ {
 387:     else:
 388:         pos1_min = pos[:, :, 1].min()
  /* "splitPixel.pyx":388
 *         pos1_maxin = max(pos1Range)
 *     else:
 *         pos1_min = pos[:, :, 1].min()             # <<<<<<<<<<<<<<
 *         pos1_maxin = pos[:, :, 1].max()
 *     pos1_max = pos1_maxin * (1 + numpy.finfo(numpy.float32).eps)
 */
  __pyx_k_slice_23 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_23)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_slice_23);
  __Pyx_GIVEREF(__pyx_k_slice_23);
  __pyx_k_slice_24 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_24)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_slice_24);
  __Pyx_GIVEREF(__pyx_k_slice_24);

    /* "splitPixel.pyx":388
 *         pos1_maxin = max(pos1Range)
 *     else:
 *         pos1_min = pos[:, :, 1].min()             # <<<<<<<<<<<<<<
 *         pos1_maxin = pos[:, :, 1].max()
 *     pos1_max = pos1_maxin * (1 + numpy.finfo(numpy.float32).eps)
 */
    __pyx_t_4 = PyObject_GetItem(((PyObject *)__pyx_v_pos), ((PyObject *)__pyx_k_tuple_25)); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_14 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__min); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_Call(__pyx_t_14, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __pyx_t_23 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_23 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_pos1_min = __pyx_t_23;
  __pyx_k_tuple_25 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_25)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_tuple_25);
  __Pyx_INCREF(__pyx_k_slice_23);
  PyTuple_SET_ITEM(__pyx_k_tuple_25, 0, __pyx_k_slice_23);
  __Pyx_GIVEREF(__pyx_k_slice_23);
  __Pyx_INCREF(__pyx_k_slice_24);
  PyTuple_SET_ITEM(__pyx_k_tuple_25, 1, __pyx_k_slice_24);
  __Pyx_GIVEREF(__pyx_k_slice_24);
  __Pyx_INCREF(__pyx_int_1);
  PyTuple_SET_ITEM(__pyx_k_tuple_25, 2, __pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_25));
 389:         pos1_maxin = pos[:, :, 1].max()
  /* "splitPixel.pyx":389
 *     else:
 *         pos1_min = pos[:, :, 1].min()
 *         pos1_maxin = pos[:, :, 1].max()             # <<<<<<<<<<<<<<
 *     pos1_max = pos1_maxin * (1 + numpy.finfo(numpy.float32).eps)
 * 
 */
  __pyx_k_slice_26 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_26)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_slice_26);
  __Pyx_GIVEREF(__pyx_k_slice_26);
  __pyx_k_slice_27 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_27)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_slice_27);
  __Pyx_GIVEREF(__pyx_k_slice_27);

    /* "splitPixel.pyx":389
 *     else:
 *         pos1_min = pos[:, :, 1].min()
 *         pos1_maxin = pos[:, :, 1].max()             # <<<<<<<<<<<<<<
 *     pos1_max = pos1_maxin * (1 + numpy.finfo(numpy.float32).eps)
 * 
 */
    __pyx_t_4 = PyObject_GetItem(((PyObject *)__pyx_v_pos), ((PyObject *)__pyx_k_tuple_28)); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_14 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__max); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_Call(__pyx_t_14, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __pyx_t_23 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_23 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_pos1_maxin = __pyx_t_23;
  }
  __pyx_L19:;
  __pyx_k_tuple_28 = PyTuple_New(3); if (unlikely(!__pyx_k_tuple_28)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_k_tuple_28);
  __Pyx_INCREF(__pyx_k_slice_26);
  PyTuple_SET_ITEM(__pyx_k_tuple_28, 0, __pyx_k_slice_26);
  __Pyx_GIVEREF(__pyx_k_slice_26);
  __Pyx_INCREF(__pyx_k_slice_27);
  PyTuple_SET_ITEM(__pyx_k_tuple_28, 1, __pyx_k_slice_27);
  __Pyx_GIVEREF(__pyx_k_slice_27);
  __Pyx_INCREF(__pyx_int_1);
  PyTuple_SET_ITEM(__pyx_k_tuple_28, 2, __pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_28));
 390:     pos1_max = pos1_maxin * (1 + numpy.finfo(numpy.float32).eps)
  /* "splitPixel.pyx":390
 *         pos1_min = pos[:, :, 1].min()
 *         pos1_maxin = pos[:, :, 1].max()
 *     pos1_max = pos1_maxin * (1 + numpy.finfo(numpy.float32).eps)             # <<<<<<<<<<<<<<
 * 
 *     cdef double dpos0 = (pos0_max - pos0_min) / (< double > (bins0))
 */
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_pos1_maxin); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_14 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_8 = PyObject_GetAttr(__pyx_t_14, __pyx_n_s__finfo); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_t_14 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_14, __pyx_n_s__float32); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_14);
  PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_t_14), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
  __pyx_t_14 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__eps); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Add(__pyx_int_1, __pyx_t_14); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_t_14 = PyNumber_Multiply(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_23 = __pyx_PyFloat_AsDouble(__pyx_t_14); if (unlikely((__pyx_t_23 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_v_pos1_max = __pyx_t_23;
 391: 
 392:     cdef double dpos0 = (pos0_max - pos0_min) / (< double > (bins0))
  /* "splitPixel.pyx":392
 *     pos1_max = pos1_maxin * (1 + numpy.finfo(numpy.float32).eps)
 * 
 *     cdef double dpos0 = (pos0_max - pos0_min) / (< double > (bins0))             # <<<<<<<<<<<<<<
 *     cdef double dpos1 = (pos1_max - pos1_min) / (< double > (bins1))
 *     edges0 = numpy.linspace(pos0_min+0.5*dpos0, pos0_maxin-0.5*dpos0, bins0)
 */
  __pyx_v_dpos0 = ((__pyx_v_pos0_max - __pyx_v_pos0_min) / ((double)__pyx_v_bins0));
 393:     cdef double dpos1 = (pos1_max - pos1_min) / (< double > (bins1))
  /* "splitPixel.pyx":393
 * 
 *     cdef double dpos0 = (pos0_max - pos0_min) / (< double > (bins0))
 *     cdef double dpos1 = (pos1_max - pos1_min) / (< double > (bins1))             # <<<<<<<<<<<<<<
 *     edges0 = numpy.linspace(pos0_min+0.5*dpos0, pos0_maxin-0.5*dpos0, bins0)
 *     edges1 = numpy.linspace(pos1_min+0.5*dpos1, pos1_maxin-0.5*dpos1, bins1)
 */
  __pyx_v_dpos1 = ((__pyx_v_pos1_max - __pyx_v_pos1_min) / ((double)__pyx_v_bins1));
 394:     edges0 = numpy.linspace(pos0_min+0.5*dpos0, pos0_maxin-0.5*dpos0, bins0)
  /* "splitPixel.pyx":394
 *     cdef double dpos0 = (pos0_max - pos0_min) / (< double > (bins0))
 *     cdef double dpos1 = (pos1_max - pos1_min) / (< double > (bins1))
 *     edges0 = numpy.linspace(pos0_min+0.5*dpos0, pos0_maxin-0.5*dpos0, bins0)             # <<<<<<<<<<<<<<
 *     edges1 = numpy.linspace(pos1_min+0.5*dpos1, pos1_maxin-0.5*dpos1, bins1)
 * 
 */
  __pyx_t_14 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_14, __pyx_n_s__linspace); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_t_14 = PyFloat_FromDouble((__pyx_v_pos0_min + (0.5 * __pyx_v_dpos0))); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_4 = PyFloat_FromDouble((__pyx_v_pos0_maxin - (0.5 * __pyx_v_dpos0))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_8 = __Pyx_PyInt_FromSize_t(__pyx_v_bins0); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_14);
  __Pyx_GIVEREF(__pyx_t_14);
  PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_8);
  __pyx_t_14 = 0;
  __pyx_t_4 = 0;
  __pyx_t_8 = 0;
  __pyx_t_8 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__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_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_18 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_edges0.rcbuffer->pybuffer);
    __pyx_t_24 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_edges0.rcbuffer->pybuffer, (PyObject*)__pyx_t_18, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_24 < 0)) {
      PyErr_Fetch(&__pyx_t_7, &__pyx_t_6, &__pyx_t_5);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_edges0.rcbuffer->pybuffer, (PyObject*)__pyx_v_edges0, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_7); Py_XDECREF(__pyx_t_6); Py_XDECREF(__pyx_t_5);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_7, __pyx_t_6, __pyx_t_5);
      }
    }
    __pyx_pybuffernd_edges0.diminfo[0].strides = __pyx_pybuffernd_edges0.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_edges0.diminfo[0].shape = __pyx_pybuffernd_edges0.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_24 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_t_18 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_v_edges0));
  __pyx_v_edges0 = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
 395:     edges1 = numpy.linspace(pos1_min+0.5*dpos1, pos1_maxin-0.5*dpos1, bins1)
  /* "splitPixel.pyx":395
 *     cdef double dpos1 = (pos1_max - pos1_min) / (< double > (bins1))
 *     edges0 = numpy.linspace(pos0_min+0.5*dpos0, pos0_maxin-0.5*dpos0, bins0)
 *     edges1 = numpy.linspace(pos1_min+0.5*dpos1, pos1_maxin-0.5*dpos1, bins1)             # <<<<<<<<<<<<<<
 * 
 *     if (dummy is not None) and (delta_dummy is not None):
 */
  __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__linspace); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyFloat_FromDouble((__pyx_v_pos1_min + (0.5 * __pyx_v_dpos1))); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_1 = PyFloat_FromDouble((__pyx_v_pos1_maxin - (0.5 * __pyx_v_dpos1))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_v_bins1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_14 = PyTuple_New(3); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_14);
  PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_8 = 0;
  __pyx_t_1 = 0;
  __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_t_14), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_19 = ((PyArrayObject *)__pyx_t_4);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_edges1.rcbuffer->pybuffer);
    __pyx_t_24 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_edges1.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_24 < 0)) {
      PyErr_Fetch(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_edges1.rcbuffer->pybuffer, (PyObject*)__pyx_v_edges1, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_5); Py_XDECREF(__pyx_t_6); Py_XDECREF(__pyx_t_7);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_5, __pyx_t_6, __pyx_t_7);
      }
    }
    __pyx_pybuffernd_edges1.diminfo[0].strides = __pyx_pybuffernd_edges1.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_edges1.diminfo[0].shape = __pyx_pybuffernd_edges1.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_24 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_t_19 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_v_edges1));
  __pyx_v_edges1 = ((PyArrayObject *)__pyx_t_4);
  __pyx_t_4 = 0;
 396: 
 397:     if (dummy is not None) and (delta_dummy is not None):
  /* "splitPixel.pyx":397
 *     edges1 = numpy.linspace(pos1_min+0.5*dpos1, pos1_maxin-0.5*dpos1, bins1)
 * 
 *     if (dummy is not None) and (delta_dummy is not None):             # <<<<<<<<<<<<<<
 *         check_dummy = True
 *         cdummy =  float(dummy)
 */
  __pyx_t_21 = (__pyx_v_dummy != Py_None);
  if (__pyx_t_21) {
    __pyx_t_22 = (__pyx_v_delta_dummy != Py_None);
    __pyx_t_3 = __pyx_t_22;
  } else {
    __pyx_t_3 = __pyx_t_21;
  }
  if (__pyx_t_3) {
 398:         check_dummy = True
    /* "splitPixel.pyx":398
 * 
 *     if (dummy is not None) and (delta_dummy is not None):
 *         check_dummy = True             # <<<<<<<<<<<<<<
 *         cdummy =  float(dummy)
 *         cddummy =  float(delta_dummy)
 */
    __pyx_v_check_dummy = 1;
 399:         cdummy =  float(dummy)
    /* "splitPixel.pyx":399
 *     if (dummy is not None) and (delta_dummy is not None):
 *         check_dummy = True
 *         cdummy =  float(dummy)             # <<<<<<<<<<<<<<
 *         cddummy =  float(delta_dummy)
 *     elif (dummy is not None):
 */
    __pyx_t_23 = __Pyx_PyObject_AsDouble(__pyx_v_dummy); if (unlikely(__pyx_t_23 == ((double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_v_cdummy = __pyx_t_23;
 400:         cddummy =  float(delta_dummy)
    /* "splitPixel.pyx":400
 *         check_dummy = True
 *         cdummy =  float(dummy)
 *         cddummy =  float(delta_dummy)             # <<<<<<<<<<<<<<
 *     elif (dummy is not None):
 *         check_dummy = True
 */
    __pyx_t_23 = __Pyx_PyObject_AsDouble(__pyx_v_delta_dummy); if (unlikely(__pyx_t_23 == ((double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_v_cddummy = __pyx_t_23;
    goto __pyx_L20;
  }
 401:     elif (dummy is not None):
  /* "splitPixel.pyx":401
 *         cdummy =  float(dummy)
 *         cddummy =  float(delta_dummy)
 *     elif (dummy is not None):             # <<<<<<<<<<<<<<
 *         check_dummy = True
 *         cdummy = float(dummy)
 */
  __pyx_t_3 = (__pyx_v_dummy != Py_None);
  if (__pyx_t_3) {
 402:         check_dummy = True
    /* "splitPixel.pyx":402
 *         cddummy =  float(delta_dummy)
 *     elif (dummy is not None):
 *         check_dummy = True             # <<<<<<<<<<<<<<
 *         cdummy = float(dummy)
 *         cddummy = 0.0
 */
    __pyx_v_check_dummy = 1;
 403:         cdummy = float(dummy)
    /* "splitPixel.pyx":403
 *     elif (dummy is not None):
 *         check_dummy = True
 *         cdummy = float(dummy)             # <<<<<<<<<<<<<<
 *         cddummy = 0.0
 *     else:
 */
    __pyx_t_23 = __Pyx_PyObject_AsDouble(__pyx_v_dummy); if (unlikely(__pyx_t_23 == ((double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_v_cdummy = __pyx_t_23;
 404:         cddummy = 0.0
    /* "splitPixel.pyx":404
 *         check_dummy = True
 *         cdummy = float(dummy)
 *         cddummy = 0.0             # <<<<<<<<<<<<<<
 *     else:
 *         check_dummy = False
 */
    __pyx_v_cddummy = 0.0;
    goto __pyx_L20;
  }
  /*else*/ {
 405:     else:
 406:         check_dummy = False
    /* "splitPixel.pyx":406
 *         cddummy = 0.0
 *     else:
 *         check_dummy = False             # <<<<<<<<<<<<<<
 *         cdummy = 0.0
 *         cddummy = 0.0
 */
    __pyx_v_check_dummy = 0;
 407:         cdummy = 0.0
    /* "splitPixel.pyx":407
 *     else:
 *         check_dummy = False
 *         cdummy = 0.0             # <<<<<<<<<<<<<<
 *         cddummy = 0.0
 * 
 */
    __pyx_v_cdummy = 0.0;
 408:         cddummy = 0.0
    /* "splitPixel.pyx":408
 *         check_dummy = False
 *         cdummy = 0.0
 *         cddummy = 0.0             # <<<<<<<<<<<<<<
 * 
 *     if mask is not None:
 */
    __pyx_v_cddummy = 0.0;
  }
  __pyx_L20:;
 409: 
 410:     if mask is not None:
  /* "splitPixel.pyx":410
 *         cddummy = 0.0
 * 
 *     if mask is not None:             # <<<<<<<<<<<<<<
 *         check_mask = True
 *         assert mask.size == size
 */
  __pyx_t_3 = (__pyx_v_mask != Py_None);
  if (__pyx_t_3) {
 411:         check_mask = True
    /* "splitPixel.pyx":411
 * 
 *     if mask is not None:
 *         check_mask = True             # <<<<<<<<<<<<<<
 *         assert mask.size == size
 *         cmask = numpy.ascontiguousarray(mask.ravel(), dtype=numpy.int8)
 */
    __pyx_v_check_mask = 1;
 412:         assert mask.size == size
    /* "splitPixel.pyx":412
 *     if mask is not None:
 *         check_mask = True
 *         assert mask.size == size             # <<<<<<<<<<<<<<
 *         cmask = numpy.ascontiguousarray(mask.ravel(), dtype=numpy.int8)
 *     if dark is not None:
 */
    #ifndef CYTHON_WITHOUT_ASSERTIONS
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_mask, __pyx_n_s__size); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_14 = __Pyx_PyInt_FromSize_t(__pyx_v_size); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __pyx_t_9 = PyObject_RichCompare(__pyx_t_4, __pyx_t_14, Py_EQ); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_3)) {
      PyErr_SetNone(PyExc_AssertionError);
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    #endif
 413:         cmask = numpy.ascontiguousarray(mask.ravel(), dtype=numpy.int8)
    /* "splitPixel.pyx":413
 *         check_mask = True
 *         assert mask.size == size
 *         cmask = numpy.ascontiguousarray(mask.ravel(), dtype=numpy.int8)             # <<<<<<<<<<<<<<
 *     if dark is not None:
 *         do_dark = True
 */
    __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_14 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__ascontiguousarray); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = PyObject_GetAttr(__pyx_v_mask, __pyx_n_s__ravel); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_4 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_8 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__int8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__dtype), __pyx_t_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = PyObject_Call(__pyx_t_14, ((PyObject *)__pyx_t_9), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    __pyx_t_25 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(__pyx_t_8);
    if (unlikely(!__pyx_t_25.memview)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_v_cmask = __pyx_t_25;
    __pyx_t_25.memview = NULL;
    __pyx_t_25.data = NULL;
    goto __pyx_L21;
  }
  __pyx_L21:;
 414:     if dark is not None:
  /* "splitPixel.pyx":414
 *         assert mask.size == size
 *         cmask = numpy.ascontiguousarray(mask.ravel(), dtype=numpy.int8)
 *     if dark is not None:             # <<<<<<<<<<<<<<
 *         do_dark = True
 *         assert dark.size == size
 */
  __pyx_t_3 = (__pyx_v_dark != Py_None);
  if (__pyx_t_3) {
 415:         do_dark = True
    /* "splitPixel.pyx":415
 *         cmask = numpy.ascontiguousarray(mask.ravel(), dtype=numpy.int8)
 *     if dark is not None:
 *         do_dark = True             # <<<<<<<<<<<<<<
 *         assert dark.size == size
 *         cdark = numpy.ascontiguousarray(dark.ravel(), dtype=numpy.float64)
 */
    __pyx_v_do_dark = 1;
 416:         assert dark.size == size
    /* "splitPixel.pyx":416
 *     if dark is not None:
 *         do_dark = True
 *         assert dark.size == size             # <<<<<<<<<<<<<<
 *         cdark = numpy.ascontiguousarray(dark.ravel(), dtype=numpy.float64)
 *     if flat is not None:
 */
    #ifndef CYTHON_WITHOUT_ASSERTIONS
    __pyx_t_8 = PyObject_GetAttr(__pyx_v_dark, __pyx_n_s__size); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_v_size); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_9 = PyObject_RichCompare(__pyx_t_8, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_3)) {
      PyErr_SetNone(PyExc_AssertionError);
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    #endif
 417:         cdark = numpy.ascontiguousarray(dark.ravel(), dtype=numpy.float64)
    /* "splitPixel.pyx":417
 *         do_dark = True
 *         assert dark.size == size
 *         cdark = numpy.ascontiguousarray(dark.ravel(), dtype=numpy.float64)             # <<<<<<<<<<<<<<
 *     if flat is not None:
 *         do_flat = True
 */
    __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__ascontiguousarray); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = PyObject_GetAttr(__pyx_v_dark, __pyx_n_s__ravel); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_8 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_8);
    __pyx_t_8 = 0;
    __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_8));
    __pyx_t_14 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_14, __pyx_n_s__float64); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    if (PyDict_SetItem(__pyx_t_8, ((PyObject *)__pyx_n_s__dtype), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_9), ((PyObject *)__pyx_t_8)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
    __pyx_t_26 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_t_1);
    if (unlikely(!__pyx_t_26.memview)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_cdark = __pyx_t_26;
    __pyx_t_26.memview = NULL;
    __pyx_t_26.data = NULL;
    goto __pyx_L22;
  }
  __pyx_L22:;
 418:     if flat is not None:
  /* "splitPixel.pyx":418
 *         assert dark.size == size
 *         cdark = numpy.ascontiguousarray(dark.ravel(), dtype=numpy.float64)
 *     if flat is not None:             # <<<<<<<<<<<<<<
 *         do_flat = True
 *         assert flat.size == size
 */
  __pyx_t_3 = (__pyx_v_flat != Py_None);
  if (__pyx_t_3) {
 419:         do_flat = True
    /* "splitPixel.pyx":419
 *         cdark = numpy.ascontiguousarray(dark.ravel(), dtype=numpy.float64)
 *     if flat is not None:
 *         do_flat = True             # <<<<<<<<<<<<<<
 *         assert flat.size == size
 *         cflat = numpy.ascontiguousarray(flat.ravel(), dtype=numpy.float64)
 */
    __pyx_v_do_flat = 1;
 420:         assert flat.size == size
    /* "splitPixel.pyx":420
 *     if flat is not None:
 *         do_flat = True
 *         assert flat.size == size             # <<<<<<<<<<<<<<
 *         cflat = numpy.ascontiguousarray(flat.ravel(), dtype=numpy.float64)
 *     if polarization is not None:
 */
    #ifndef CYTHON_WITHOUT_ASSERTIONS
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_flat, __pyx_n_s__size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_8 = __Pyx_PyInt_FromSize_t(__pyx_v_size); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = PyObject_RichCompare(__pyx_t_1, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_3)) {
      PyErr_SetNone(PyExc_AssertionError);
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    #endif
 421:         cflat = numpy.ascontiguousarray(flat.ravel(), dtype=numpy.float64)
    /* "splitPixel.pyx":421
 *         do_flat = True
 *         assert flat.size == size
 *         cflat = numpy.ascontiguousarray(flat.ravel(), dtype=numpy.float64)             # <<<<<<<<<<<<<<
 *     if polarization is not None:
 *         do_polarization = True
 */
    __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_8 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__ascontiguousarray); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = PyObject_GetAttr(__pyx_v_flat, __pyx_n_s__ravel); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_1 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_1));
    __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_14 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__float64); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__dtype), __pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __pyx_t_14 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_t_9), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
    __pyx_t_26 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_t_14);
    if (unlikely(!__pyx_t_26.memview)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __pyx_v_cflat = __pyx_t_26;
    __pyx_t_26.memview = NULL;
    __pyx_t_26.data = NULL;
    goto __pyx_L23;
  }
  __pyx_L23:;
 422:     if polarization is not None:
  /* "splitPixel.pyx":422
 *         assert flat.size == size
 *         cflat = numpy.ascontiguousarray(flat.ravel(), dtype=numpy.float64)
 *     if polarization is not None:             # <<<<<<<<<<<<<<
 *         do_polarization = True
 *         assert polarization.size == size
 */
  __pyx_t_3 = (__pyx_v_polarization != Py_None);
  if (__pyx_t_3) {
 423:         do_polarization = True
    /* "splitPixel.pyx":423
 *         cflat = numpy.ascontiguousarray(flat.ravel(), dtype=numpy.float64)
 *     if polarization is not None:
 *         do_polarization = True             # <<<<<<<<<<<<<<
 *         assert polarization.size == size
 *         cpolarization = numpy.ascontiguousarray(polarization.ravel(), dtype=numpy.float64)
 */
    __pyx_v_do_polarization = 1;
 424:         assert polarization.size == size
    /* "splitPixel.pyx":424
 *     if polarization is not None:
 *         do_polarization = True
 *         assert polarization.size == size             # <<<<<<<<<<<<<<
 *         cpolarization = numpy.ascontiguousarray(polarization.ravel(), dtype=numpy.float64)
 *     if solidangle is not None:
 */
    #ifndef CYTHON_WITHOUT_ASSERTIONS
    __pyx_t_14 = PyObject_GetAttr(__pyx_v_polarization, __pyx_n_s__size); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_9 = PyObject_RichCompare(__pyx_t_14, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_3)) {
      PyErr_SetNone(PyExc_AssertionError);
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    #endif
 425:         cpolarization = numpy.ascontiguousarray(polarization.ravel(), dtype=numpy.float64)
    /* "splitPixel.pyx":425
 *         do_polarization = True
 *         assert polarization.size == size
 *         cpolarization = numpy.ascontiguousarray(polarization.ravel(), dtype=numpy.float64)             # <<<<<<<<<<<<<<
 *     if solidangle is not None:
 *         do_solidangle = True
 */
    __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__ascontiguousarray); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = PyObject_GetAttr(__pyx_v_polarization, __pyx_n_s__ravel); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_14 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_14);
    __Pyx_GIVEREF(__pyx_t_14);
    __pyx_t_14 = 0;
    __pyx_t_14 = PyDict_New(); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_14));
    __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__float64); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (PyDict_SetItem(__pyx_t_14, ((PyObject *)__pyx_n_s__dtype), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_9), ((PyObject *)__pyx_t_14)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
    __pyx_t_26 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_t_4);
    if (unlikely(!__pyx_t_26.memview)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_cpolarization = __pyx_t_26;
    __pyx_t_26.memview = NULL;
    __pyx_t_26.data = NULL;
    goto __pyx_L24;
  }
  __pyx_L24:;
 426:     if solidangle is not None:
  /* "splitPixel.pyx":426
 *         assert polarization.size == size
 *         cpolarization = numpy.ascontiguousarray(polarization.ravel(), dtype=numpy.float64)
 *     if solidangle is not None:             # <<<<<<<<<<<<<<
 *         do_solidangle = True
 *         assert solidangle.size == size
 */
  __pyx_t_3 = (__pyx_v_solidangle != Py_None);
  if (__pyx_t_3) {
 427:         do_solidangle = True
    /* "splitPixel.pyx":427
 *         cpolarization = numpy.ascontiguousarray(polarization.ravel(), dtype=numpy.float64)
 *     if solidangle is not None:
 *         do_solidangle = True             # <<<<<<<<<<<<<<
 *         assert solidangle.size == size
 *         csolidangle = numpy.ascontiguousarray(solidangle.ravel(), dtype=numpy.float64)
 */
    __pyx_v_do_solidangle = 1;
 428:         assert solidangle.size == size
    /* "splitPixel.pyx":428
 *     if solidangle is not None:
 *         do_solidangle = True
 *         assert solidangle.size == size             # <<<<<<<<<<<<<<
 *         csolidangle = numpy.ascontiguousarray(solidangle.ravel(), dtype=numpy.float64)
 * 
 */
    #ifndef CYTHON_WITHOUT_ASSERTIONS
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_solidangle, __pyx_n_s__size); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_14 = __Pyx_PyInt_FromSize_t(__pyx_v_size); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __pyx_t_9 = PyObject_RichCompare(__pyx_t_4, __pyx_t_14, Py_EQ); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_3)) {
      PyErr_SetNone(PyExc_AssertionError);
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    #endif
 429:         csolidangle = numpy.ascontiguousarray(solidangle.ravel(), dtype=numpy.float64)
    /* "splitPixel.pyx":429
 *         do_solidangle = True
 *         assert solidangle.size == size
 *         csolidangle = numpy.ascontiguousarray(solidangle.ravel(), dtype=numpy.float64)             # <<<<<<<<<<<<<<
 * 
 *     with nogil:
 */
    __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_14 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__ascontiguousarray); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = PyObject_GetAttr(__pyx_v_solidangle, __pyx_n_s__ravel); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_4 = PyObject_Call(__pyx_t_9, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__numpy); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_8 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__float64); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__dtype), __pyx_t_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = PyObject_Call(__pyx_t_14, ((PyObject *)__pyx_t_9), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    __pyx_t_26 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_t_8);
    if (unlikely(!__pyx_t_26.memview)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_v_csolidangle = __pyx_t_26;
    __pyx_t_26.memview = NULL;
    __pyx_t_26.data = NULL;
    goto __pyx_L25;
  }
  __pyx_L25:;
 430: 
 431:     with nogil:
  /* "splitPixel.pyx":431
 *         csolidangle = numpy.ascontiguousarray(solidangle.ravel(), dtype=numpy.float64)
 * 
 *     with nogil:             # <<<<<<<<<<<<<<
 *         for idx in range(size):
 * 
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save = NULL;
      #endif
      Py_UNBLOCK_THREADS
      /*try:*/ {

      /* "splitPixel.pyx":431
 *         csolidangle = numpy.ascontiguousarray(solidangle.ravel(), dtype=numpy.float64)
 * 
 *     with nogil:             # <<<<<<<<<<<<<<
 *         for idx in range(size):
 * 
 */
      /*finally:*/ {
        int __pyx_why;
        __pyx_why = 0; goto __pyx_L28;
        __pyx_L27: __pyx_why = 4; goto __pyx_L28;
        __pyx_L28:;
        Py_BLOCK_THREADS
        switch (__pyx_why) {
          case 4: goto __pyx_L1_error;
        }
      }
  }
 432:         for idx in range(size):
        /* "splitPixel.pyx":432
 * 
 *     with nogil:
 *         for idx in range(size):             # <<<<<<<<<<<<<<
 * 
 *             if (check_mask) and (cmask[idx]):
 */
        __pyx_t_11 = __pyx_v_size;
        for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_11; __pyx_t_2+=1) {
          __pyx_v_idx = __pyx_t_2;
 433: 
 434:             if (check_mask) and (cmask[idx]):
          /* "splitPixel.pyx":434
 *         for idx in range(size):
 * 
 *             if (check_mask) and (cmask[idx]):             # <<<<<<<<<<<<<<
 *                 continue
 * 
 */
          __pyx_t_3 = __pyx_v_check_mask;
          if (__pyx_t_3) {
            if (unlikely(!__pyx_v_cmask.memview)) { __Pyx_RaiseUnboundMemoryviewSliceNogil("cmask"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L27;} }
            __pyx_t_27 = __pyx_v_idx;
            __pyx_t_21 = (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_cmask.data + __pyx_t_27 * __pyx_v_cmask.strides[0]) )));
          } else {
            __pyx_t_21 = __pyx_t_3;
          }
          if (__pyx_t_21) {
 435:                 continue
            /* "splitPixel.pyx":435
 * 
 *             if (check_mask) and (cmask[idx]):
 *                 continue             # <<<<<<<<<<<<<<
 * 
 *             data = cdata[idx]
 */
            goto __pyx_L29_continue;
            goto __pyx_L31;
          }
          __pyx_L31:;
 436: 
 437:             data = cdata[idx]
          /* "splitPixel.pyx":437
 *                 continue
 * 
 *             data = cdata[idx]             # <<<<<<<<<<<<<<
 *             if check_dummy and ( (cddummy==0.0 and data==cdummy) or (cddummy!=0.0 and fabs(data-cdummy)<=cddummy)):
 *                 continue
 */
          __pyx_t_28 = __pyx_v_idx;
          __pyx_v_data = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_cdata.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_cdata.diminfo[0].strides));
 438:             if check_dummy and ( (cddummy==0.0 and data==cdummy) or (cddummy!=0.0 and fabs(data-cdummy)<=cddummy)):
          /* "splitPixel.pyx":438
 * 
 *             data = cdata[idx]
 *             if check_dummy and ( (cddummy==0.0 and data==cdummy) or (cddummy!=0.0 and fabs(data-cdummy)<=cddummy)):             # <<<<<<<<<<<<<<
 *                 continue
 * 
 */
          if (__pyx_v_check_dummy) {
            __pyx_t_21 = (__pyx_v_cddummy == 0.0);
            if (__pyx_t_21) {
              __pyx_t_3 = (__pyx_v_data == __pyx_v_cdummy);
              __pyx_t_22 = __pyx_t_3;
            } else {
              __pyx_t_22 = __pyx_t_21;
            }
            if (!__pyx_t_22) {
              __pyx_t_21 = (__pyx_v_cddummy != 0.0);
              if (__pyx_t_21) {
                __pyx_t_3 = (fabs((__pyx_v_data - __pyx_v_cdummy)) <= __pyx_v_cddummy);
                __pyx_t_29 = __pyx_t_3;
              } else {
                __pyx_t_29 = __pyx_t_21;
              }
              __pyx_t_21 = __pyx_t_29;
            } else {
              __pyx_t_21 = __pyx_t_22;
            }
            __pyx_t_22 = __pyx_t_21;
          } else {
            __pyx_t_22 = __pyx_v_check_dummy;
          }
          if (__pyx_t_22) {
 439:                 continue
            /* "splitPixel.pyx":439
 *             data = cdata[idx]
 *             if check_dummy and ( (cddummy==0.0 and data==cdummy) or (cddummy!=0.0 and fabs(data-cdummy)<=cddummy)):
 *                 continue             # <<<<<<<<<<<<<<
 * 
 *             a0 =  cpos[idx, 0, 0]
 */
            goto __pyx_L29_continue;
            goto __pyx_L32;
          }
          __pyx_L32:;
 440: 
 441:             a0 =  cpos[idx, 0, 0]
          /* "splitPixel.pyx":441
 *                 continue
 * 
 *             a0 =  cpos[idx, 0, 0]             # <<<<<<<<<<<<<<
 *             a1 =  cpos[idx, 0, 1]
 *             b0 =  cpos[idx, 1, 0]
 */
          __pyx_t_30 = __pyx_v_idx;
          __pyx_t_31 = 0;
          __pyx_t_32 = 0;
          __pyx_v_a0 = (*__Pyx_BufPtrStrided3d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_cpos.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_cpos.diminfo[0].strides, __pyx_t_31, __pyx_pybuffernd_cpos.diminfo[1].strides, __pyx_t_32, __pyx_pybuffernd_cpos.diminfo[2].strides));
 442:             a1 =  cpos[idx, 0, 1]
          /* "splitPixel.pyx":442
 * 
 *             a0 =  cpos[idx, 0, 0]
 *             a1 =  cpos[idx, 0, 1]             # <<<<<<<<<<<<<<
 *             b0 =  cpos[idx, 1, 0]
 *             b1 =  cpos[idx, 1, 1]
 */
          __pyx_t_33 = __pyx_v_idx;
          __pyx_t_34 = 0;
          __pyx_t_35 = 1;
          __pyx_v_a1 = (*__Pyx_BufPtrStrided3d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_cpos.rcbuffer->pybuffer.buf, __pyx_t_33, __pyx_pybuffernd_cpos.diminfo[0].strides, __pyx_t_34, __pyx_pybuffernd_cpos.diminfo[1].strides, __pyx_t_35, __pyx_pybuffernd_cpos.diminfo[2].strides));
 443:             b0 =  cpos[idx, 1, 0]
          /* "splitPixel.pyx":443
 *             a0 =  cpos[idx, 0, 0]
 *             a1 =  cpos[idx, 0, 1]
 *             b0 =  cpos[idx, 1, 0]             # <<<<<<<<<<<<<<
 *             b1 =  cpos[idx, 1, 1]
 *             c0 =  cpos[idx, 2, 0]
 */
          __pyx_t_36 = __pyx_v_idx;
          __pyx_t_37 = 1;
          __pyx_t_38 = 0;
          __pyx_v_b0 = (*__Pyx_BufPtrStrided3d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_cpos.rcbuffer->pybuffer.buf, __pyx_t_36, __pyx_pybuffernd_cpos.diminfo[0].strides, __pyx_t_37, __pyx_pybuffernd_cpos.diminfo[1].strides, __pyx_t_38, __pyx_pybuffernd_cpos.diminfo[2].strides));
 444:             b1 =  cpos[idx, 1, 1]
          /* "splitPixel.pyx":444
 *             a1 =  cpos[idx, 0, 1]
 *             b0 =  cpos[idx, 1, 0]
 *             b1 =  cpos[idx, 1, 1]             # <<<<<<<<<<<<<<
 *             c0 =  cpos[idx, 2, 0]
 *             c1 =  cpos[idx, 2, 1]
 */
          __pyx_t_39 = __pyx_v_idx;
          __pyx_t_40 = 1;
          __pyx_t_41 = 1;
          __pyx_v_b1 = (*__Pyx_BufPtrStrided3d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_cpos.rcbuffer->pybuffer.buf, __pyx_t_39, __pyx_pybuffernd_cpos.diminfo[0].strides, __pyx_t_40, __pyx_pybuffernd_cpos.diminfo[1].strides, __pyx_t_41, __pyx_pybuffernd_cpos.diminfo[2].strides));
 445:             c0 =  cpos[idx, 2, 0]
          /* "splitPixel.pyx":445
 *             b0 =  cpos[idx, 1, 0]
 *             b1 =  cpos[idx, 1, 1]
 *             c0 =  cpos[idx, 2, 0]             # <<<<<<<<<<<<<<
 *             c1 =  cpos[idx, 2, 1]
 *             d0 =  cpos[idx, 3, 0]
 */
          __pyx_t_42 = __pyx_v_idx;
          __pyx_t_43 = 2;
          __pyx_t_44 = 0;
          __pyx_v_c0 = (*__Pyx_BufPtrStrided3d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_cpos.rcbuffer->pybuffer.buf, __pyx_t_42, __pyx_pybuffernd_cpos.diminfo[0].strides, __pyx_t_43, __pyx_pybuffernd_cpos.diminfo[1].strides, __pyx_t_44, __pyx_pybuffernd_cpos.diminfo[2].strides));
 446:             c1 =  cpos[idx, 2, 1]
          /* "splitPixel.pyx":446
 *             b1 =  cpos[idx, 1, 1]
 *             c0 =  cpos[idx, 2, 0]
 *             c1 =  cpos[idx, 2, 1]             # <<<<<<<<<<<<<<
 *             d0 =  cpos[idx, 3, 0]
 *             d1 =  cpos[idx, 3, 1]
 */
          __pyx_t_45 = __pyx_v_idx;
          __pyx_t_46 = 2;
          __pyx_t_47 = 1;
          __pyx_v_c1 = (*__Pyx_BufPtrStrided3d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_cpos.rcbuffer->pybuffer.buf, __pyx_t_45, __pyx_pybuffernd_cpos.diminfo[0].strides, __pyx_t_46, __pyx_pybuffernd_cpos.diminfo[1].strides, __pyx_t_47, __pyx_pybuffernd_cpos.diminfo[2].strides));
 447:             d0 =  cpos[idx, 3, 0]
          /* "splitPixel.pyx":447
 *             c0 =  cpos[idx, 2, 0]
 *             c1 =  cpos[idx, 2, 1]
 *             d0 =  cpos[idx, 3, 0]             # <<<<<<<<<<<<<<
 *             d1 =  cpos[idx, 3, 1]
 * 
 */
          __pyx_t_48 = __pyx_v_idx;
          __pyx_t_49 = 3;
          __pyx_t_50 = 0;
          __pyx_v_d0 = (*__Pyx_BufPtrStrided3d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_cpos.rcbuffer->pybuffer.buf, __pyx_t_48, __pyx_pybuffernd_cpos.diminfo[0].strides, __pyx_t_49, __pyx_pybuffernd_cpos.diminfo[1].strides, __pyx_t_50, __pyx_pybuffernd_cpos.diminfo[2].strides));
 448:             d1 =  cpos[idx, 3, 1]
          /* "splitPixel.pyx":448
 *             c1 =  cpos[idx, 2, 1]
 *             d0 =  cpos[idx, 3, 0]
 *             d1 =  cpos[idx, 3, 1]             # <<<<<<<<<<<<<<
 * 
 *             min0 = min4f(a0, b0, c0, d0)
 */
          __pyx_t_51 = __pyx_v_idx;
          __pyx_t_52 = 3;
          __pyx_t_53 = 1;
          __pyx_v_d1 = (*__Pyx_BufPtrStrided3d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_cpos.rcbuffer->pybuffer.buf, __pyx_t_51, __pyx_pybuffernd_cpos.diminfo[0].strides, __pyx_t_52, __pyx_pybuffernd_cpos.diminfo[1].strides, __pyx_t_53, __pyx_pybuffernd_cpos.diminfo[2].strides));
 449: 
 450:             min0 = min4f(a0, b0, c0, d0)
          /* "splitPixel.pyx":450
 *             d1 =  cpos[idx, 3, 1]
 * 
 *             min0 = min4f(a0, b0, c0, d0)             # <<<<<<<<<<<<<<
 *             max0 = max4f(a0, b0, c0, d0)
 *             min1 = min4f(a1, b1, c1, d1)
 */
          __pyx_v_min0 = __pyx_f_10splitPixel_min4f(__pyx_v_a0, __pyx_v_b0, __pyx_v_c0, __pyx_v_d0);
 451:             max0 = max4f(a0, b0, c0, d0)
          /* "splitPixel.pyx":451
 * 
 *             min0 = min4f(a0, b0, c0, d0)
 *             max0 = max4f(a0, b0, c0, d0)             # <<<<<<<<<<<<<<
 *             min1 = min4f(a1, b1, c1, d1)
 *             max1 = max4f(a1, b1, c1, d1)
 */
          __pyx_v_max0 = __pyx_f_10splitPixel_max4f(__pyx_v_a0, __pyx_v_b0, __pyx_v_c0, __pyx_v_d0);
 452:             min1 = min4f(a1, b1, c1, d1)
          /* "splitPixel.pyx":452
 *             min0 = min4f(a0, b0, c0, d0)
 *             max0 = max4f(a0, b0, c0, d0)
 *             min1 = min4f(a1, b1, c1, d1)             # <<<<<<<<<<<<<<
 *             max1 = max4f(a1, b1, c1, d1)
 * 
 */
          __pyx_v_min1 = __pyx_f_10splitPixel_min4f(__pyx_v_a1, __pyx_v_b1, __pyx_v_c1, __pyx_v_d1);
 453:             max1 = max4f(a1, b1, c1, d1)
          /* "splitPixel.pyx":453
 *             max0 = max4f(a0, b0, c0, d0)
 *             min1 = min4f(a1, b1, c1, d1)
 *             max1 = max4f(a1, b1, c1, d1)             # <<<<<<<<<<<<<<
 * 
 *             if (max0<pos0_min) or (min0 > pos0_maxin) or (max1<pos1_min) or (min1 > pos1_maxin):
 */
          __pyx_v_max1 = __pyx_f_10splitPixel_max4f(__pyx_v_a1, __pyx_v_b1, __pyx_v_c1, __pyx_v_d1);
 454: 
 455:             if (max0<pos0_min) or (min0 > pos0_maxin) or (max1<pos1_min) or (min1 > pos1_maxin):
          /* "splitPixel.pyx":455
 *             max1 = max4f(a1, b1, c1, d1)
 * 
 *             if (max0<pos0_min) or (min0 > pos0_maxin) or (max1<pos1_min) or (min1 > pos1_maxin):             # <<<<<<<<<<<<<<
 *                     continue
 * 
 */
          __pyx_t_22 = (__pyx_v_max0 < __pyx_v_pos0_min);
          if (!__pyx_t_22) {
            __pyx_t_21 = (__pyx_v_min0 > __pyx_v_pos0_maxin);
            if (!__pyx_t_21) {
              __pyx_t_29 = (__pyx_v_max1 < __pyx_v_pos1_min);
              if (!__pyx_t_29) {
                __pyx_t_3 = (__pyx_v_min1 > __pyx_v_pos1_maxin);
                __pyx_t_54 = __pyx_t_3;
              } else {
                __pyx_t_54 = __pyx_t_29;
              }
              __pyx_t_29 = __pyx_t_54;
            } else {
              __pyx_t_29 = __pyx_t_21;
            }
            __pyx_t_21 = __pyx_t_29;
          } else {
            __pyx_t_21 = __pyx_t_22;
          }
          if (__pyx_t_21) {
 456:                     continue
            /* "splitPixel.pyx":456
 * 
 *             if (max0<pos0_min) or (min0 > pos0_maxin) or (max1<pos1_min) or (min1 > pos1_maxin):
 *                     continue             # <<<<<<<<<<<<<<
 * 
 *             if do_dark:
 */
            goto __pyx_L29_continue;
            goto __pyx_L33;
          }
          __pyx_L33:;
 457: 
 458:             if do_dark:
          /* "splitPixel.pyx":458
 *                     continue
 * 
 *             if do_dark:             # <<<<<<<<<<<<<<
 *                 data -= cdark[idx]
 *             if do_flat:
 */
          if (__pyx_v_do_dark) {
 459:                 data -= cdark[idx]
            /* "splitPixel.pyx":459
 * 
 *             if do_dark:
 *                 data -= cdark[idx]             # <<<<<<<<<<<<<<
 *             if do_flat:
 *                 data /= cflat[idx]
 */
            if (unlikely(!__pyx_v_cdark.memview)) { __Pyx_RaiseUnboundMemoryviewSliceNogil("cdark"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L27;} }
            __pyx_t_55 = __pyx_v_idx;
            __pyx_v_data = (__pyx_v_data - (*((double *) ( /* dim=0 */ (__pyx_v_cdark.data + __pyx_t_55 * __pyx_v_cdark.strides[0]) ))));
            goto __pyx_L34;
          }
          __pyx_L34:;
 460:             if do_flat:
          /* "splitPixel.pyx":460
 *             if do_dark:
 *                 data -= cdark[idx]
 *             if do_flat:             # <<<<<<<<<<<<<<
 *                 data /= cflat[idx]
 *             if do_polarization:
 */
          if (__pyx_v_do_flat) {
 461:                 data /= cflat[idx]
            /* "splitPixel.pyx":461
 *                 data -= cdark[idx]
 *             if do_flat:
 *                 data /= cflat[idx]             # <<<<<<<<<<<<<<
 *             if do_polarization:
 *                 data /= cpolarization[idx]
 */
            if (unlikely(!__pyx_v_cflat.memview)) { __Pyx_RaiseUnboundMemoryviewSliceNogil("cflat"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 461; __pyx_clineno = __LINE__; goto __pyx_L27;} }
            __pyx_t_56 = __pyx_v_idx;
            __pyx_v_data = (__pyx_v_data / (*((double *) ( /* dim=0 */ (__pyx_v_cflat.data + __pyx_t_56 * __pyx_v_cflat.strides[0]) ))));
            goto __pyx_L35;
          }
          __pyx_L35:;
 462:             if do_polarization:
          /* "splitPixel.pyx":462
 *             if do_flat:
 *                 data /= cflat[idx]
 *             if do_polarization:             # <<<<<<<<<<<<<<
 *                 data /= cpolarization[idx]
 *             if do_solidangle:
 */
          if (__pyx_v_do_polarization) {
 463:                 data /= cpolarization[idx]
            /* "splitPixel.pyx":463
 *                 data /= cflat[idx]
 *             if do_polarization:
 *                 data /= cpolarization[idx]             # <<<<<<<<<<<<<<
 *             if do_solidangle:
 *                 data /= csolidangle[idx]
 */
            if (unlikely(!__pyx_v_cpolarization.memview)) { __Pyx_RaiseUnboundMemoryviewSliceNogil("cpolarization"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L27;} }
            __pyx_t_57 = __pyx_v_idx;
            __pyx_v_data = (__pyx_v_data / (*((double *) ( /* dim=0 */ (__pyx_v_cpolarization.data + __pyx_t_57 * __pyx_v_cpolarization.strides[0]) ))));
            goto __pyx_L36;
          }
          __pyx_L36:;
 464:             if do_solidangle:
          /* "splitPixel.pyx":464
 *             if do_polarization:
 *                 data /= cpolarization[idx]
 *             if do_solidangle:             # <<<<<<<<<<<<<<
 *                 data /= csolidangle[idx]
 * 
 */
          if (__pyx_v_do_solidangle) {
 465:                 data /= csolidangle[idx]
            /* "splitPixel.pyx":465
 *                 data /= cpolarization[idx]
 *             if do_solidangle:
 *                 data /= csolidangle[idx]             # <<<<<<<<<<<<<<
 * 
 * 
 */
            if (unlikely(!__pyx_v_csolidangle.memview)) { __Pyx_RaiseUnboundMemoryviewSliceNogil("csolidangle"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L27;} }
            __pyx_t_58 = __pyx_v_idx;
            __pyx_v_data = (__pyx_v_data / (*((double *) ( /* dim=0 */ (__pyx_v_csolidangle.data + __pyx_t_58 * __pyx_v_csolidangle.strides[0]) ))));
            goto __pyx_L37;
          }
          __pyx_L37:;
 466: 
 467: 
 468:             if min0 < pos0_min:
          /* "splitPixel.pyx":468
 * 
 * 
 *             if min0 < pos0_min:             # <<<<<<<<<<<<<<
 *                 data = data * (pos0_min - min0) / (max0 - min0)
 *                 min0 = pos0_min
 */
          __pyx_t_21 = (__pyx_v_min0 < __pyx_v_pos0_min);
          if (__pyx_t_21) {
 469:                 data = data * (pos0_min - min0) / (max0 - min0)
            /* "splitPixel.pyx":469
 * 
 *             if min0 < pos0_min:
 *                 data = data * (pos0_min - min0) / (max0 - min0)             # <<<<<<<<<<<<<<
 *                 min0 = pos0_min
 *             if min1 < pos1_min:
 */
            __pyx_v_data = ((__pyx_v_data * (__pyx_v_pos0_min - __pyx_v_min0)) / (__pyx_v_max0 - __pyx_v_min0));
 470:                 min0 = pos0_min
            /* "splitPixel.pyx":470
 *             if min0 < pos0_min:
 *                 data = data * (pos0_min - min0) / (max0 - min0)
 *                 min0 = pos0_min             # <<<<<<<<<<<<<<
 *             if min1 < pos1_min:
 *                 data = data * (pos1_min - min1) / (max1 - min1)
 */
            __pyx_v_min0 = __pyx_v_pos0_min;
            goto __pyx_L38;
          }
          __pyx_L38:;
 471:             if min1 < pos1_min:
          /* "splitPixel.pyx":471
 *                 data = data * (pos0_min - min0) / (max0 - min0)
 *                 min0 = pos0_min
 *             if min1 < pos1_min:             # <<<<<<<<<<<<<<
 *                 data = data * (pos1_min - min1) / (max1 - min1)
 *                 min1 = pos1_min
 */
          __pyx_t_21 = (__pyx_v_min1 < __pyx_v_pos1_min);
          if (__pyx_t_21) {
 472:                 data = data * (pos1_min - min1) / (max1 - min1)
            /* "splitPixel.pyx":472
 *                 min0 = pos0_min
 *             if min1 < pos1_min:
 *                 data = data * (pos1_min - min1) / (max1 - min1)             # <<<<<<<<<<<<<<
 *                 min1 = pos1_min
 *             if max0 > pos0_maxin:
 */
            __pyx_v_data = ((__pyx_v_data * (__pyx_v_pos1_min - __pyx_v_min1)) / (__pyx_v_max1 - __pyx_v_min1));
 473:                 min1 = pos1_min
            /* "splitPixel.pyx":473
 *             if min1 < pos1_min:
 *                 data = data * (pos1_min - min1) / (max1 - min1)
 *                 min1 = pos1_min             # <<<<<<<<<<<<<<
 *             if max0 > pos0_maxin:
 *                 data = data * (max0 - pos0_maxin) / (max0 - min0)
 */
            __pyx_v_min1 = __pyx_v_pos1_min;
            goto __pyx_L39;
          }
          __pyx_L39:;
 474:             if max0 > pos0_maxin:
          /* "splitPixel.pyx":474
 *                 data = data * (pos1_min - min1) / (max1 - min1)
 *                 min1 = pos1_min
 *             if max0 > pos0_maxin:             # <<<<<<<<<<<<<<
 *                 data = data * (max0 - pos0_maxin) / (max0 - min0)
 *                 max0 = pos0_maxin
 */
          __pyx_t_21 = (__pyx_v_max0 > __pyx_v_pos0_maxin);
          if (__pyx_t_21) {
 475:                 data = data * (max0 - pos0_maxin) / (max0 - min0)
            /* "splitPixel.pyx":475
 *                 min1 = pos1_min
 *             if max0 > pos0_maxin:
 *                 data = data * (max0 - pos0_maxin) / (max0 - min0)             # <<<<<<<<<<<<<<
 *                 max0 = pos0_maxin
 *             if max1 > pos1_maxin:
 */
            __pyx_v_data = ((__pyx_v_data * (__pyx_v_max0 - __pyx_v_pos0_maxin)) / (__pyx_v_max0 - __pyx_v_min0));
 476:                 max0 = pos0_maxin
            /* "splitPixel.pyx":476
 *             if max0 > pos0_maxin:
 *                 data = data * (max0 - pos0_maxin) / (max0 - min0)
 *                 max0 = pos0_maxin             # <<<<<<<<<<<<<<
 *             if max1 > pos1_maxin:
 *                 data = data * (max1 - pos1_maxin) / (max1 - min1)
 */
            __pyx_v_max0 = __pyx_v_pos0_maxin;
            goto __pyx_L40;
          }
          __pyx_L40:;
 477:             if max1 > pos1_maxin:
          /* "splitPixel.pyx":477
 *                 data = data * (max0 - pos0_maxin) / (max0 - min0)
 *                 max0 = pos0_maxin
 *             if max1 > pos1_maxin:             # <<<<<<<<<<<<<<
 *                 data = data * (max1 - pos1_maxin) / (max1 - min1)
 *                 max1 = pos1_maxin
 */
          __pyx_t_21 = (__pyx_v_max1 > __pyx_v_pos1_maxin);
          if (__pyx_t_21) {
 478:                 data = data * (max1 - pos1_maxin) / (max1 - min1)
            /* "splitPixel.pyx":478
 *                 max0 = pos0_maxin
 *             if max1 > pos1_maxin:
 *                 data = data * (max1 - pos1_maxin) / (max1 - min1)             # <<<<<<<<<<<<<<
 *                 max1 = pos1_maxin
 * 
 */
            __pyx_v_data = ((__pyx_v_data * (__pyx_v_max1 - __pyx_v_pos1_maxin)) / (__pyx_v_max1 - __pyx_v_min1));
 479:                 max1 = pos1_maxin
            /* "splitPixel.pyx":479
 *             if max1 > pos1_maxin:
 *                 data = data * (max1 - pos1_maxin) / (max1 - min1)
 *                 max1 = pos1_maxin             # <<<<<<<<<<<<<<
 * 
 * ##                treat data for pixel on chi discontinuity
 */
            __pyx_v_max1 = __pyx_v_pos1_maxin;
            goto __pyx_L41;
          }
          __pyx_L41:;
 480: 
 481: ##                treat data for pixel on chi discontinuity
 482:             if ((max1 - min1) / dpos1) > (bins1 / 2.0):
          /* "splitPixel.pyx":482
 * 
 * ##                treat data for pixel on chi discontinuity
 *             if ((max1 - min1) / dpos1) > (bins1 / 2.0):             # <<<<<<<<<<<<<<
 *                 if pos1_maxin - max1 > min1 - pos1_min:
 *                     min1 = max1
 */
          __pyx_t_21 = (((__pyx_v_max1 - __pyx_v_min1) / __pyx_v_dpos1) > (__pyx_v_bins1 / 2.0));
          if (__pyx_t_21) {
 483:                 if pos1_maxin - max1 > min1 - pos1_min:
            /* "splitPixel.pyx":483
 * ##                treat data for pixel on chi discontinuity
 *             if ((max1 - min1) / dpos1) > (bins1 / 2.0):
 *                 if pos1_maxin - max1 > min1 - pos1_min:             # <<<<<<<<<<<<<<
 *                     min1 = max1
 *                     max1 = pos1_maxin
 */
            __pyx_t_21 = ((__pyx_v_pos1_maxin - __pyx_v_max1) > (__pyx_v_min1 - __pyx_v_pos1_min));
            if (__pyx_t_21) {
 484:                     min1 = max1
              /* "splitPixel.pyx":484
 *             if ((max1 - min1) / dpos1) > (bins1 / 2.0):
 *                 if pos1_maxin - max1 > min1 - pos1_min:
 *                     min1 = max1             # <<<<<<<<<<<<<<
 *                     max1 = pos1_maxin
 *                 else:
 */
              __pyx_v_min1 = __pyx_v_max1;
 485:                     max1 = pos1_maxin
              /* "splitPixel.pyx":485
 *                 if pos1_maxin - max1 > min1 - pos1_min:
 *                     min1 = max1
 *                     max1 = pos1_maxin             # <<<<<<<<<<<<<<
 *                 else:
 *                     max1 = min1
 */
              __pyx_v_max1 = __pyx_v_pos1_maxin;
              goto __pyx_L43;
            }
            /*else*/ {
 486:                 else:
 487:                     max1 = min1
              /* "splitPixel.pyx":487
 *                     max1 = pos1_maxin
 *                 else:
 *                     max1 = min1             # <<<<<<<<<<<<<<
 *                     min1 = pos1_min
 * 
 */
              __pyx_v_max1 = __pyx_v_min1;
 488:                     min1 = pos1_min
              /* "splitPixel.pyx":488
 *                 else:
 *                     max1 = min1
 *                     min1 = pos1_min             # <<<<<<<<<<<<<<
 * 
 *             fbin0_min = getBinNr(min0, pos0_min, dpos0)
 */
              __pyx_v_min1 = __pyx_v_pos1_min;
            }
            __pyx_L43:;
            goto __pyx_L42;
          }
          __pyx_L42:;
 489: 
 490:             fbin0_min = getBinNr(min0, pos0_min, dpos0)
          /* "splitPixel.pyx":490
 *                     min1 = pos1_min
 * 
 *             fbin0_min = getBinNr(min0, pos0_min, dpos0)             # <<<<<<<<<<<<<<
 *             fbin0_max = getBinNr(max0, pos0_min, dpos0)
 *             fbin1_min = getBinNr(min1, pos1_min, dpos1)
 */
          __pyx_v_fbin0_min = __pyx_f_10splitPixel_getBinNr(__pyx_v_min0, __pyx_v_pos0_min, __pyx_v_dpos0);
 491:             fbin0_max = getBinNr(max0, pos0_min, dpos0)
          /* "splitPixel.pyx":491
 * 
 *             fbin0_min = getBinNr(min0, pos0_min, dpos0)
 *             fbin0_max = getBinNr(max0, pos0_min, dpos0)             # <<<<<<<<<<<<<<
 *             fbin1_min = getBinNr(min1, pos1_min, dpos1)
 *             fbin1_max = getBinNr(max1, pos1_min, dpos1)
 */
          __pyx_v_fbin0_max = __pyx_f_10splitPixel_getBinNr(__pyx_v_max0, __pyx_v_pos0_min, __pyx_v_dpos0);
 492:             fbin1_min = getBinNr(min1, pos1_min, dpos1)
          /* "splitPixel.pyx":492
 *             fbin0_min = getBinNr(min0, pos0_min, dpos0)
 *             fbin0_max = getBinNr(max0, pos0_min, dpos0)
 *             fbin1_min = getBinNr(min1, pos1_min, dpos1)             # <<<<<<<<<<<<<<
 *             fbin1_max = getBinNr(max1, pos1_min, dpos1)
 * 
 */
          __pyx_v_fbin1_min = __pyx_f_10splitPixel_getBinNr(__pyx_v_min1, __pyx_v_pos1_min, __pyx_v_dpos1);
 493:             fbin1_max = getBinNr(max1, pos1_min, dpos1)
          /* "splitPixel.pyx":493
 *             fbin0_max = getBinNr(max0, pos0_min, dpos0)
 *             fbin1_min = getBinNr(min1, pos1_min, dpos1)
 *             fbin1_max = getBinNr(max1, pos1_min, dpos1)             # <<<<<<<<<<<<<<
 * 
 *             bin0_min = < size_t > fbin0_min
 */
          __pyx_v_fbin1_max = __pyx_f_10splitPixel_getBinNr(__pyx_v_max1, __pyx_v_pos1_min, __pyx_v_dpos1);
 494: 
 495:             bin0_min = < size_t > fbin0_min
          /* "splitPixel.pyx":495
 *             fbin1_max = getBinNr(max1, pos1_min, dpos1)
 * 
 *             bin0_min = < size_t > fbin0_min             # <<<<<<<<<<<<<<
 *             bin0_max = < size_t > fbin0_max
 *             bin1_min = < size_t > fbin1_min
 */
          __pyx_v_bin0_min = ((size_t)__pyx_v_fbin0_min);
 496:             bin0_max = < size_t > fbin0_max
          /* "splitPixel.pyx":496
 * 
 *             bin0_min = < size_t > fbin0_min
 *             bin0_max = < size_t > fbin0_max             # <<<<<<<<<<<<<<
 *             bin1_min = < size_t > fbin1_min
 *             bin1_max = < size_t > fbin1_max
 */
          __pyx_v_bin0_max = ((size_t)__pyx_v_fbin0_max);
 497:             bin1_min = < size_t > fbin1_min
          /* "splitPixel.pyx":497
 *             bin0_min = < size_t > fbin0_min
 *             bin0_max = < size_t > fbin0_max
 *             bin1_min = < size_t > fbin1_min             # <<<<<<<<<<<<<<
 *             bin1_max = < size_t > fbin1_max
 * 
 */
          __pyx_v_bin1_min = ((size_t)__pyx_v_fbin1_min);
 498:             bin1_max = < size_t > fbin1_max
          /* "splitPixel.pyx":498
 *             bin0_max = < size_t > fbin0_max
 *             bin1_min = < size_t > fbin1_min
 *             bin1_max = < size_t > fbin1_max             # <<<<<<<<<<<<<<
 * 
 * 
 */
          __pyx_v_bin1_max = ((size_t)__pyx_v_fbin1_max);
 499: 
 500: 
 501:             if bin0_min == bin0_max:
          /* "splitPixel.pyx":501
 * 
 * 
 *             if bin0_min == bin0_max:             # <<<<<<<<<<<<<<
 *                 if bin1_min == bin1_max:
 *                     #All pixel is within a single bin
 */
          __pyx_t_21 = (__pyx_v_bin0_min == __pyx_v_bin0_max);
          if (__pyx_t_21) {
 502:                 if bin1_min == bin1_max:
            /* "splitPixel.pyx":502
 * 
 *             if bin0_min == bin0_max:
 *                 if bin1_min == bin1_max:             # <<<<<<<<<<<<<<
 *                     #All pixel is within a single bin
 *                     outCount[bin0_min, bin1_min] += 1.0
 */
            __pyx_t_21 = (__pyx_v_bin1_min == __pyx_v_bin1_max);
            if (__pyx_t_21) {
 503:                     #All pixel is within a single bin
 504:                     outCount[bin0_min, bin1_min] += 1.0
              /* "splitPixel.pyx":504
 *                 if bin1_min == bin1_max:
 *                     #All pixel is within a single bin
 *                     outCount[bin0_min, bin1_min] += 1.0             # <<<<<<<<<<<<<<
 *                     outData[bin0_min, bin1_min] += data
 *                 else:
 */
              __pyx_t_59 = __pyx_v_bin0_min;
              __pyx_t_60 = __pyx_v_bin1_min;
              *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outCount.rcbuffer->pybuffer.buf, __pyx_t_59, __pyx_pybuffernd_outCount.diminfo[0].strides, __pyx_t_60, __pyx_pybuffernd_outCount.diminfo[1].strides) += 1.0;
 505:                     outData[bin0_min, bin1_min] += data
              /* "splitPixel.pyx":505
 *                     #All pixel is within a single bin
 *                     outCount[bin0_min, bin1_min] += 1.0
 *                     outData[bin0_min, bin1_min] += data             # <<<<<<<<<<<<<<
 *                 else:
 *                     #spread on more than 2 bins
 */
              __pyx_t_61 = __pyx_v_bin0_min;
              __pyx_t_62 = __pyx_v_bin1_min;
              *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outData.rcbuffer->pybuffer.buf, __pyx_t_61, __pyx_pybuffernd_outData.diminfo[0].strides, __pyx_t_62, __pyx_pybuffernd_outData.diminfo[1].strides) += __pyx_v_data;
              goto __pyx_L45;
            }
            /*else*/ {
 506:                 else:
 507:                     #spread on more than 2 bins
 508:                     aeraPixel = fbin1_max - fbin1_min
              /* "splitPixel.pyx":508
 *                 else:
 *                     #spread on more than 2 bins
 *                     aeraPixel = fbin1_max - fbin1_min             # <<<<<<<<<<<<<<
 *                     deltaD = (< double > (bin1_min + 1)) - fbin1_min
 *                     deltaU = fbin1_max - (< double > bin1_max)
 */
              __pyx_v_aeraPixel = (__pyx_v_fbin1_max - __pyx_v_fbin1_min);
 509:                     deltaD = (< double > (bin1_min + 1)) - fbin1_min
              /* "splitPixel.pyx":509
 *                     #spread on more than 2 bins
 *                     aeraPixel = fbin1_max - fbin1_min
 *                     deltaD = (< double > (bin1_min + 1)) - fbin1_min             # <<<<<<<<<<<<<<
 *                     deltaU = fbin1_max - (< double > bin1_max)
 *                     deltaA = 1.0 / aeraPixel
 */
              __pyx_v_deltaD = (((double)(__pyx_v_bin1_min + 1)) - __pyx_v_fbin1_min);
 510:                     deltaU = fbin1_max - (< double > bin1_max)
              /* "splitPixel.pyx":510
 *                     aeraPixel = fbin1_max - fbin1_min
 *                     deltaD = (< double > (bin1_min + 1)) - fbin1_min
 *                     deltaU = fbin1_max - (< double > bin1_max)             # <<<<<<<<<<<<<<
 *                     deltaA = 1.0 / aeraPixel
 * 
 */
              __pyx_v_deltaU = (__pyx_v_fbin1_max - ((double)__pyx_v_bin1_max));
 511:                     deltaA = 1.0 / aeraPixel
              /* "splitPixel.pyx":511
 *                     deltaD = (< double > (bin1_min + 1)) - fbin1_min
 *                     deltaU = fbin1_max - (< double > bin1_max)
 *                     deltaA = 1.0 / aeraPixel             # <<<<<<<<<<<<<<
 * 
 *                     outCount[bin0_min, bin1_min] += deltaA * deltaD
 */
              __pyx_v_deltaA = (1.0 / __pyx_v_aeraPixel);
 512: 
 513:                     outCount[bin0_min, bin1_min] += deltaA * deltaD
              /* "splitPixel.pyx":513
 *                     deltaA = 1.0 / aeraPixel
 * 
 *                     outCount[bin0_min, bin1_min] += deltaA * deltaD             # <<<<<<<<<<<<<<
 *                     outData[bin0_min, bin1_min] += data * deltaA * deltaD
 * 
 */
              __pyx_t_63 = __pyx_v_bin0_min;
              __pyx_t_64 = __pyx_v_bin1_min;
              *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outCount.rcbuffer->pybuffer.buf, __pyx_t_63, __pyx_pybuffernd_outCount.diminfo[0].strides, __pyx_t_64, __pyx_pybuffernd_outCount.diminfo[1].strides) += (__pyx_v_deltaA * __pyx_v_deltaD);
 514:                     outData[bin0_min, bin1_min] += data * deltaA * deltaD
              /* "splitPixel.pyx":514
 * 
 *                     outCount[bin0_min, bin1_min] += deltaA * deltaD
 *                     outData[bin0_min, bin1_min] += data * deltaA * deltaD             # <<<<<<<<<<<<<<
 * 
 *                     outCount[bin0_min, bin1_max] += deltaA * deltaU
 */
              __pyx_t_65 = __pyx_v_bin0_min;
              __pyx_t_66 = __pyx_v_bin1_min;
              *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outData.rcbuffer->pybuffer.buf, __pyx_t_65, __pyx_pybuffernd_outData.diminfo[0].strides, __pyx_t_66, __pyx_pybuffernd_outData.diminfo[1].strides) += ((__pyx_v_data * __pyx_v_deltaA) * __pyx_v_deltaD);
 515: 
 516:                     outCount[bin0_min, bin1_max] += deltaA * deltaU
              /* "splitPixel.pyx":516
 *                     outData[bin0_min, bin1_min] += data * deltaA * deltaD
 * 
 *                     outCount[bin0_min, bin1_max] += deltaA * deltaU             # <<<<<<<<<<<<<<
 *                     outData[bin0_min, bin1_max] += data * deltaA * deltaU
 * #                    if bin1_min +1< bin1_max:
 */
              __pyx_t_67 = __pyx_v_bin0_min;
              __pyx_t_68 = __pyx_v_bin1_max;
              *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outCount.rcbuffer->pybuffer.buf, __pyx_t_67, __pyx_pybuffernd_outCount.diminfo[0].strides, __pyx_t_68, __pyx_pybuffernd_outCount.diminfo[1].strides) += (__pyx_v_deltaA * __pyx_v_deltaU);
 517:                     outData[bin0_min, bin1_max] += data * deltaA * deltaU
              /* "splitPixel.pyx":517
 * 
 *                     outCount[bin0_min, bin1_max] += deltaA * deltaU
 *                     outData[bin0_min, bin1_max] += data * deltaA * deltaU             # <<<<<<<<<<<<<<
 * #                    if bin1_min +1< bin1_max:
 *                     for j in range(bin1_min + 1, bin1_max):
 */
              __pyx_t_69 = __pyx_v_bin0_min;
              __pyx_t_70 = __pyx_v_bin1_max;
              *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outData.rcbuffer->pybuffer.buf, __pyx_t_69, __pyx_pybuffernd_outData.diminfo[0].strides, __pyx_t_70, __pyx_pybuffernd_outData.diminfo[1].strides) += ((__pyx_v_data * __pyx_v_deltaA) * __pyx_v_deltaU);
 518: #                    if bin1_min +1< bin1_max:
 519:                     for j in range(bin1_min + 1, bin1_max):
              /* "splitPixel.pyx":519
 *                     outData[bin0_min, bin1_max] += data * deltaA * deltaU
 * #                    if bin1_min +1< bin1_max:
 *                     for j in range(bin1_min + 1, bin1_max):             # <<<<<<<<<<<<<<
 *                             outCount[bin0_min, j] += deltaA
 *                             outData[bin0_min, j] += data * deltaA
 */
              __pyx_t_71 = __pyx_v_bin1_max;
              for (__pyx_t_72 = (__pyx_v_bin1_min + 1); __pyx_t_72 < __pyx_t_71; __pyx_t_72+=1) {
                __pyx_v_j = __pyx_t_72;
 520:                             outCount[bin0_min, j] += deltaA
                /* "splitPixel.pyx":520
 * #                    if bin1_min +1< bin1_max:
 *                     for j in range(bin1_min + 1, bin1_max):
 *                             outCount[bin0_min, j] += deltaA             # <<<<<<<<<<<<<<
 *                             outData[bin0_min, j] += data * deltaA
 * 
 */
                __pyx_t_73 = __pyx_v_bin0_min;
                __pyx_t_74 = __pyx_v_j;
                *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outCount.rcbuffer->pybuffer.buf, __pyx_t_73, __pyx_pybuffernd_outCount.diminfo[0].strides, __pyx_t_74, __pyx_pybuffernd_outCount.diminfo[1].strides) += __pyx_v_deltaA;
 521:                             outData[bin0_min, j] += data * deltaA
                /* "splitPixel.pyx":521
 *                     for j in range(bin1_min + 1, bin1_max):
 *                             outCount[bin0_min, j] += deltaA
 *                             outData[bin0_min, j] += data * deltaA             # <<<<<<<<<<<<<<
 * 
 *             else: #spread on more than 2 bins in dim 0
 */
                __pyx_t_75 = __pyx_v_bin0_min;
                __pyx_t_76 = __pyx_v_j;
                *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outData.rcbuffer->pybuffer.buf, __pyx_t_75, __pyx_pybuffernd_outData.diminfo[0].strides, __pyx_t_76, __pyx_pybuffernd_outData.diminfo[1].strides) += (__pyx_v_data * __pyx_v_deltaA);
              }
            }
            __pyx_L45:;
            goto __pyx_L44;
          }
          /*else*/ {
 522: 
 523:             else: #spread on more than 2 bins in dim 0
 524:                 if bin1_min == bin1_max:
            /* "splitPixel.pyx":524
 * 
 *             else: #spread on more than 2 bins in dim 0
 *                 if bin1_min == bin1_max:             # <<<<<<<<<<<<<<
 *                     #All pixel fall on 1 bins in dim 1
 *                     aeraPixel = fbin0_max - fbin0_min
 */
            __pyx_t_21 = (__pyx_v_bin1_min == __pyx_v_bin1_max);
            if (__pyx_t_21) {
 525:                     #All pixel fall on 1 bins in dim 1
 526:                     aeraPixel = fbin0_max - fbin0_min
              /* "splitPixel.pyx":526
 *                 if bin1_min == bin1_max:
 *                     #All pixel fall on 1 bins in dim 1
 *                     aeraPixel = fbin0_max - fbin0_min             # <<<<<<<<<<<<<<
 *                     deltaL = (< double > (bin0_min + 1)) - fbin0_min
 *                     deltaA = deltaL / aeraPixel
 */
              __pyx_v_aeraPixel = (__pyx_v_fbin0_max - __pyx_v_fbin0_min);
 527:                     deltaL = (< double > (bin0_min + 1)) - fbin0_min
              /* "splitPixel.pyx":527
 *                     #All pixel fall on 1 bins in dim 1
 *                     aeraPixel = fbin0_max - fbin0_min
 *                     deltaL = (< double > (bin0_min + 1)) - fbin0_min             # <<<<<<<<<<<<<<
 *                     deltaA = deltaL / aeraPixel
 *                     outCount[bin0_min, bin1_min] += deltaA
 */
              __pyx_v_deltaL = (((double)(__pyx_v_bin0_min + 1)) - __pyx_v_fbin0_min);
 528:                     deltaA = deltaL / aeraPixel
              /* "splitPixel.pyx":528
 *                     aeraPixel = fbin0_max - fbin0_min
 *                     deltaL = (< double > (bin0_min + 1)) - fbin0_min
 *                     deltaA = deltaL / aeraPixel             # <<<<<<<<<<<<<<
 *                     outCount[bin0_min, bin1_min] += deltaA
 *                     outData[bin0_min, bin1_min] += data * deltaA
 */
              __pyx_v_deltaA = (__pyx_v_deltaL / __pyx_v_aeraPixel);
 529:                     outCount[bin0_min, bin1_min] += deltaA
              /* "splitPixel.pyx":529
 *                     deltaL = (< double > (bin0_min + 1)) - fbin0_min
 *                     deltaA = deltaL / aeraPixel
 *                     outCount[bin0_min, bin1_min] += deltaA             # <<<<<<<<<<<<<<
 *                     outData[bin0_min, bin1_min] += data * deltaA
 *                     deltaR = fbin0_max - (< double > bin0_max)
 */
              __pyx_t_71 = __pyx_v_bin0_min;
              __pyx_t_72 = __pyx_v_bin1_min;
              *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outCount.rcbuffer->pybuffer.buf, __pyx_t_71, __pyx_pybuffernd_outCount.diminfo[0].strides, __pyx_t_72, __pyx_pybuffernd_outCount.diminfo[1].strides) += __pyx_v_deltaA;
 530:                     outData[bin0_min, bin1_min] += data * deltaA
              /* "splitPixel.pyx":530
 *                     deltaA = deltaL / aeraPixel
 *                     outCount[bin0_min, bin1_min] += deltaA
 *                     outData[bin0_min, bin1_min] += data * deltaA             # <<<<<<<<<<<<<<
 *                     deltaR = fbin0_max - (< double > bin0_max)
 *                     deltaA = deltaR / aeraPixel
 */
              __pyx_t_77 = __pyx_v_bin0_min;
              __pyx_t_78 = __pyx_v_bin1_min;
              *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outData.rcbuffer->pybuffer.buf, __pyx_t_77, __pyx_pybuffernd_outData.diminfo[0].strides, __pyx_t_78, __pyx_pybuffernd_outData.diminfo[1].strides) += (__pyx_v_data * __pyx_v_deltaA);
 531:                     deltaR = fbin0_max - (< double > bin0_max)
              /* "splitPixel.pyx":531
 *                     outCount[bin0_min, bin1_min] += deltaA
 *                     outData[bin0_min, bin1_min] += data * deltaA
 *                     deltaR = fbin0_max - (< double > bin0_max)             # <<<<<<<<<<<<<<
 *                     deltaA = deltaR / aeraPixel
 *                     outCount[bin0_max, bin1_min] += deltaA
 */
              __pyx_v_deltaR = (__pyx_v_fbin0_max - ((double)__pyx_v_bin0_max));
 532:                     deltaA = deltaR / aeraPixel
              /* "splitPixel.pyx":532
 *                     outData[bin0_min, bin1_min] += data * deltaA
 *                     deltaR = fbin0_max - (< double > bin0_max)
 *                     deltaA = deltaR / aeraPixel             # <<<<<<<<<<<<<<
 *                     outCount[bin0_max, bin1_min] += deltaA
 *                     outData[bin0_max, bin1_min] += data * deltaA
 */
              __pyx_v_deltaA = (__pyx_v_deltaR / __pyx_v_aeraPixel);
 533:                     outCount[bin0_max, bin1_min] += deltaA
              /* "splitPixel.pyx":533
 *                     deltaR = fbin0_max - (< double > bin0_max)
 *                     deltaA = deltaR / aeraPixel
 *                     outCount[bin0_max, bin1_min] += deltaA             # <<<<<<<<<<<<<<
 *                     outData[bin0_max, bin1_min] += data * deltaA
 *                     deltaA = 1.0 / aeraPixel
 */
              __pyx_t_79 = __pyx_v_bin0_max;
              __pyx_t_80 = __pyx_v_bin1_min;
              *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outCount.rcbuffer->pybuffer.buf, __pyx_t_79, __pyx_pybuffernd_outCount.diminfo[0].strides, __pyx_t_80, __pyx_pybuffernd_outCount.diminfo[1].strides) += __pyx_v_deltaA;
 534:                     outData[bin0_max, bin1_min] += data * deltaA
              /* "splitPixel.pyx":534
 *                     deltaA = deltaR / aeraPixel
 *                     outCount[bin0_max, bin1_min] += deltaA
 *                     outData[bin0_max, bin1_min] += data * deltaA             # <<<<<<<<<<<<<<
 *                     deltaA = 1.0 / aeraPixel
 *                     for i in range(bin0_min + 1, bin0_max):
 */
              __pyx_t_81 = __pyx_v_bin0_max;
              __pyx_t_82 = __pyx_v_bin1_min;
              *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outData.rcbuffer->pybuffer.buf, __pyx_t_81, __pyx_pybuffernd_outData.diminfo[0].strides, __pyx_t_82, __pyx_pybuffernd_outData.diminfo[1].strides) += (__pyx_v_data * __pyx_v_deltaA);
 535:                     deltaA = 1.0 / aeraPixel
              /* "splitPixel.pyx":535
 *                     outCount[bin0_max, bin1_min] += deltaA
 *                     outData[bin0_max, bin1_min] += data * deltaA
 *                     deltaA = 1.0 / aeraPixel             # <<<<<<<<<<<<<<
 *                     for i in range(bin0_min + 1, bin0_max):
 *                             outCount[i, bin1_min] += deltaA
 */
              __pyx_v_deltaA = (1.0 / __pyx_v_aeraPixel);
 536:                     for i in range(bin0_min + 1, bin0_max):
              /* "splitPixel.pyx":536
 *                     outData[bin0_max, bin1_min] += data * deltaA
 *                     deltaA = 1.0 / aeraPixel
 *                     for i in range(bin0_min + 1, bin0_max):             # <<<<<<<<<<<<<<
 *                             outCount[i, bin1_min] += deltaA
 *                             outData[i, bin1_min] += data * deltaA
 */
              __pyx_t_83 = __pyx_v_bin0_max;
              for (__pyx_t_84 = (__pyx_v_bin0_min + 1); __pyx_t_84 < __pyx_t_83; __pyx_t_84+=1) {
                __pyx_v_i = __pyx_t_84;
 537:                             outCount[i, bin1_min] += deltaA
                /* "splitPixel.pyx":537
 *                     deltaA = 1.0 / aeraPixel
 *                     for i in range(bin0_min + 1, bin0_max):
 *                             outCount[i, bin1_min] += deltaA             # <<<<<<<<<<<<<<
 *                             outData[i, bin1_min] += data * deltaA
 *                 else:
 */
                __pyx_t_85 = __pyx_v_i;
                __pyx_t_86 = __pyx_v_bin1_min;
                *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outCount.rcbuffer->pybuffer.buf, __pyx_t_85, __pyx_pybuffernd_outCount.diminfo[0].strides, __pyx_t_86, __pyx_pybuffernd_outCount.diminfo[1].strides) += __pyx_v_deltaA;
 538:                             outData[i, bin1_min] += data * deltaA
                /* "splitPixel.pyx":538
 *                     for i in range(bin0_min + 1, bin0_max):
 *                             outCount[i, bin1_min] += deltaA
 *                             outData[i, bin1_min] += data * deltaA             # <<<<<<<<<<<<<<
 *                 else:
 *                     #spread on n pix in dim0 and m pixel in dim1:
 */
                __pyx_t_87 = __pyx_v_i;
                __pyx_t_88 = __pyx_v_bin1_min;
                *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outData.rcbuffer->pybuffer.buf, __pyx_t_87, __pyx_pybuffernd_outData.diminfo[0].strides, __pyx_t_88, __pyx_pybuffernd_outData.diminfo[1].strides) += (__pyx_v_data * __pyx_v_deltaA);
              }
              goto __pyx_L48;
            }
            /*else*/ {
 539:                 else:
 540:                     #spread on n pix in dim0 and m pixel in dim1:
 541:                     aeraPixel = (fbin0_max - fbin0_min) * (fbin1_max - fbin1_min)
              /* "splitPixel.pyx":541
 *                 else:
 *                     #spread on n pix in dim0 and m pixel in dim1:
 *                     aeraPixel = (fbin0_max - fbin0_min) * (fbin1_max - fbin1_min)             # <<<<<<<<<<<<<<
 *                     deltaL = (< double > (bin0_min + 1.0)) - fbin0_min
 *                     deltaR = fbin0_max - (< double > bin0_max)
 */
              __pyx_v_aeraPixel = ((__pyx_v_fbin0_max - __pyx_v_fbin0_min) * (__pyx_v_fbin1_max - __pyx_v_fbin1_min));
 542:                     deltaL = (< double > (bin0_min + 1.0)) - fbin0_min
              /* "splitPixel.pyx":542
 *                     #spread on n pix in dim0 and m pixel in dim1:
 *                     aeraPixel = (fbin0_max - fbin0_min) * (fbin1_max - fbin1_min)
 *                     deltaL = (< double > (bin0_min + 1.0)) - fbin0_min             # <<<<<<<<<<<<<<
 *                     deltaR = fbin0_max - (< double > bin0_max)
 *                     deltaD = (< double > (bin1_min + 1.0)) - fbin1_min
 */
              __pyx_v_deltaL = (((double)(__pyx_v_bin0_min + 1.0)) - __pyx_v_fbin0_min);
 543:                     deltaR = fbin0_max - (< double > bin0_max)
              /* "splitPixel.pyx":543
 *                     aeraPixel = (fbin0_max - fbin0_min) * (fbin1_max - fbin1_min)
 *                     deltaL = (< double > (bin0_min + 1.0)) - fbin0_min
 *                     deltaR = fbin0_max - (< double > bin0_max)             # <<<<<<<<<<<<<<
 *                     deltaD = (< double > (bin1_min + 1.0)) - fbin1_min
 *                     deltaU = fbin1_max - (< double > bin1_max)
 */
              __pyx_v_deltaR = (__pyx_v_fbin0_max - ((double)__pyx_v_bin0_max));
 544:                     deltaD = (< double > (bin1_min + 1.0)) - fbin1_min
              /* "splitPixel.pyx":544
 *                     deltaL = (< double > (bin0_min + 1.0)) - fbin0_min
 *                     deltaR = fbin0_max - (< double > bin0_max)
 *                     deltaD = (< double > (bin1_min + 1.0)) - fbin1_min             # <<<<<<<<<<<<<<
 *                     deltaU = fbin1_max - (< double > bin1_max)
 *                     deltaA = 1.0 / aeraPixel
 */
              __pyx_v_deltaD = (((double)(__pyx_v_bin1_min + 1.0)) - __pyx_v_fbin1_min);
 545:                     deltaU = fbin1_max - (< double > bin1_max)
              /* "splitPixel.pyx":545
 *                     deltaR = fbin0_max - (< double > bin0_max)
 *                     deltaD = (< double > (bin1_min + 1.0)) - fbin1_min
 *                     deltaU = fbin1_max - (< double > bin1_max)             # <<<<<<<<<<<<<<
 *                     deltaA = 1.0 / aeraPixel
 * 
 */
              __pyx_v_deltaU = (__pyx_v_fbin1_max - ((double)__pyx_v_bin1_max));
 546:                     deltaA = 1.0 / aeraPixel
              /* "splitPixel.pyx":546
 *                     deltaD = (< double > (bin1_min + 1.0)) - fbin1_min
 *                     deltaU = fbin1_max - (< double > bin1_max)
 *                     deltaA = 1.0 / aeraPixel             # <<<<<<<<<<<<<<
 * 
 *                     outCount[bin0_min, bin1_min] += deltaA * deltaL * deltaD
 */
              __pyx_v_deltaA = (1.0 / __pyx_v_aeraPixel);
 547: 
 548:                     outCount[bin0_min, bin1_min] += deltaA * deltaL * deltaD
              /* "splitPixel.pyx":548
 *                     deltaA = 1.0 / aeraPixel
 * 
 *                     outCount[bin0_min, bin1_min] += deltaA * deltaL * deltaD             # <<<<<<<<<<<<<<
 *                     outData[bin0_min, bin1_min] += data * deltaA * deltaL * deltaD
 * 
 */
              __pyx_t_83 = __pyx_v_bin0_min;
              __pyx_t_84 = __pyx_v_bin1_min;
              *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outCount.rcbuffer->pybuffer.buf, __pyx_t_83, __pyx_pybuffernd_outCount.diminfo[0].strides, __pyx_t_84, __pyx_pybuffernd_outCount.diminfo[1].strides) += ((__pyx_v_deltaA * __pyx_v_deltaL) * __pyx_v_deltaD);
 549:                     outData[bin0_min, bin1_min] += data * deltaA * deltaL * deltaD
              /* "splitPixel.pyx":549
 * 
 *                     outCount[bin0_min, bin1_min] += deltaA * deltaL * deltaD
 *                     outData[bin0_min, bin1_min] += data * deltaA * deltaL * deltaD             # <<<<<<<<<<<<<<
 * 
 *                     outCount[bin0_min, bin1_max] += deltaA * deltaL * deltaU
 */
              __pyx_t_89 = __pyx_v_bin0_min;
              __pyx_t_90 = __pyx_v_bin1_min;
              *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outData.rcbuffer->pybuffer.buf, __pyx_t_89, __pyx_pybuffernd_outData.diminfo[0].strides, __pyx_t_90, __pyx_pybuffernd_outData.diminfo[1].strides) += (((__pyx_v_data * __pyx_v_deltaA) * __pyx_v_deltaL) * __pyx_v_deltaD);
 550: 
 551:                     outCount[bin0_min, bin1_max] += deltaA * deltaL * deltaU
              /* "splitPixel.pyx":551
 *                     outData[bin0_min, bin1_min] += data * deltaA * deltaL * deltaD
 * 
 *                     outCount[bin0_min, bin1_max] += deltaA * deltaL * deltaU             # <<<<<<<<<<<<<<
 *                     outData[bin0_min, bin1_max] += data * deltaA * deltaL * deltaU
 * 
 */
              __pyx_t_91 = __pyx_v_bin0_min;
              __pyx_t_92 = __pyx_v_bin1_max;
              *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outCount.rcbuffer->pybuffer.buf, __pyx_t_91, __pyx_pybuffernd_outCount.diminfo[0].strides, __pyx_t_92, __pyx_pybuffernd_outCount.diminfo[1].strides) += ((__pyx_v_deltaA * __pyx_v_deltaL) * __pyx_v_deltaU);
 552:                     outData[bin0_min, bin1_max] += data * deltaA * deltaL * deltaU
              /* "splitPixel.pyx":552
 * 
 *                     outCount[bin0_min, bin1_max] += deltaA * deltaL * deltaU
 *                     outData[bin0_min, bin1_max] += data * deltaA * deltaL * deltaU             # <<<<<<<<<<<<<<
 * 
 *                     outCount[bin0_max, bin1_min] += deltaA * deltaR * deltaD
 */
              __pyx_t_93 = __pyx_v_bin0_min;
              __pyx_t_94 = __pyx_v_bin1_max;
              *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outData.rcbuffer->pybuffer.buf, __pyx_t_93, __pyx_pybuffernd_outData.diminfo[0].strides, __pyx_t_94, __pyx_pybuffernd_outData.diminfo[1].strides) += (((__pyx_v_data * __pyx_v_deltaA) * __pyx_v_deltaL) * __pyx_v_deltaU);
 553: 
 554:                     outCount[bin0_max, bin1_min] += deltaA * deltaR * deltaD
              /* "splitPixel.pyx":554
 *                     outData[bin0_min, bin1_max] += data * deltaA * deltaL * deltaU
 * 
 *                     outCount[bin0_max, bin1_min] += deltaA * deltaR * deltaD             # <<<<<<<<<<<<<<
 *                     outData[bin0_max, bin1_min] += data * deltaA * deltaR * deltaD
 * 
 */
              __pyx_t_95 = __pyx_v_bin0_max;
              __pyx_t_96 = __pyx_v_bin1_min;
              *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outCount.rcbuffer->pybuffer.buf, __pyx_t_95, __pyx_pybuffernd_outCount.diminfo[0].strides, __pyx_t_96, __pyx_pybuffernd_outCount.diminfo[1].strides) += ((__pyx_v_deltaA * __pyx_v_deltaR) * __pyx_v_deltaD);
 555:                     outData[bin0_max, bin1_min] += data * deltaA * deltaR * deltaD
              /* "splitPixel.pyx":555
 * 
 *                     outCount[bin0_max, bin1_min] += deltaA * deltaR * deltaD
 *                     outData[bin0_max, bin1_min] += data * deltaA * deltaR * deltaD             # <<<<<<<<<<<<<<
 * 
 *                     outCount[bin0_max, bin1_max] += deltaA * deltaR * deltaU
 */
              __pyx_t_97 = __pyx_v_bin0_max;
              __pyx_t_98 = __pyx_v_bin1_min;
              *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outData.rcbuffer->pybuffer.buf, __pyx_t_97, __pyx_pybuffernd_outData.diminfo[0].strides, __pyx_t_98, __pyx_pybuffernd_outData.diminfo[1].strides) += (((__pyx_v_data * __pyx_v_deltaA) * __pyx_v_deltaR) * __pyx_v_deltaD);
 556: 
 557:                     outCount[bin0_max, bin1_max] += deltaA * deltaR * deltaU
              /* "splitPixel.pyx":557
 *                     outData[bin0_max, bin1_min] += data * deltaA * deltaR * deltaD
 * 
 *                     outCount[bin0_max, bin1_max] += deltaA * deltaR * deltaU             # <<<<<<<<<<<<<<
 *                     outData[bin0_max, bin1_max] += data * deltaA * deltaR * deltaU
 *                     for i in range(bin0_min + 1, bin0_max):
 */
              __pyx_t_99 = __pyx_v_bin0_max;
              __pyx_t_100 = __pyx_v_bin1_max;
              *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outCount.rcbuffer->pybuffer.buf, __pyx_t_99, __pyx_pybuffernd_outCount.diminfo[0].strides, __pyx_t_100, __pyx_pybuffernd_outCount.diminfo[1].strides) += ((__pyx_v_deltaA * __pyx_v_deltaR) * __pyx_v_deltaU);
 558:                     outData[bin0_max, bin1_max] += data * deltaA * deltaR * deltaU
              /* "splitPixel.pyx":558
 * 
 *                     outCount[bin0_max, bin1_max] += deltaA * deltaR * deltaU
 *                     outData[bin0_max, bin1_max] += data * deltaA * deltaR * deltaU             # <<<<<<<<<<<<<<
 *                     for i in range(bin0_min + 1, bin0_max):
 *                             outCount[i, bin1_min] += deltaA * deltaD
 */
              __pyx_t_101 = __pyx_v_bin0_max;
              __pyx_t_102 = __pyx_v_bin1_max;
              *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outData.rcbuffer->pybuffer.buf, __pyx_t_101, __pyx_pybuffernd_outData.diminfo[0].strides, __pyx_t_102, __pyx_pybuffernd_outData.diminfo[1].strides) += (((__pyx_v_data * __pyx_v_deltaA) * __pyx_v_deltaR) * __pyx_v_deltaU);
 559:                     for i in range(bin0_min + 1, bin0_max):
              /* "splitPixel.pyx":559
 *                     outCount[bin0_max, bin1_max] += deltaA * deltaR * deltaU
 *                     outData[bin0_max, bin1_max] += data * deltaA * deltaR * deltaU
 *                     for i in range(bin0_min + 1, bin0_max):             # <<<<<<<<<<<<<<
 *                             outCount[i, bin1_min] += deltaA * deltaD
 *                             outData[i, bin1_min] += data * deltaA * deltaD
 */
              __pyx_t_103 = __pyx_v_bin0_max;
              for (__pyx_t_104 = (__pyx_v_bin0_min + 1); __pyx_t_104 < __pyx_t_103; __pyx_t_104+=1) {
                __pyx_v_i = __pyx_t_104;
 560:                             outCount[i, bin1_min] += deltaA * deltaD
                /* "splitPixel.pyx":560
 *                     outData[bin0_max, bin1_max] += data * deltaA * deltaR * deltaU
 *                     for i in range(bin0_min + 1, bin0_max):
 *                             outCount[i, bin1_min] += deltaA * deltaD             # <<<<<<<<<<<<<<
 *                             outData[i, bin1_min] += data * deltaA * deltaD
 *                             for j in range(bin1_min + 1, bin1_max):
 */
                __pyx_t_105 = __pyx_v_i;
                __pyx_t_106 = __pyx_v_bin1_min;
                *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outCount.rcbuffer->pybuffer.buf, __pyx_t_105, __pyx_pybuffernd_outCount.diminfo[0].strides, __pyx_t_106, __pyx_pybuffernd_outCount.diminfo[1].strides) += (__pyx_v_deltaA * __pyx_v_deltaD);
 561:                             outData[i, bin1_min] += data * deltaA * deltaD
                /* "splitPixel.pyx":561
 *                     for i in range(bin0_min + 1, bin0_max):
 *                             outCount[i, bin1_min] += deltaA * deltaD
 *                             outData[i, bin1_min] += data * deltaA * deltaD             # <<<<<<<<<<<<<<
 *                             for j in range(bin1_min + 1, bin1_max):
 *                                 outCount[i, j] += deltaA
 */
                __pyx_t_107 = __pyx_v_i;
                __pyx_t_108 = __pyx_v_bin1_min;
                *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outData.rcbuffer->pybuffer.buf, __pyx_t_107, __pyx_pybuffernd_outData.diminfo[0].strides, __pyx_t_108, __pyx_pybuffernd_outData.diminfo[1].strides) += ((__pyx_v_data * __pyx_v_deltaA) * __pyx_v_deltaD);
 562:                             for j in range(bin1_min + 1, bin1_max):
                /* "splitPixel.pyx":562
 *                             outCount[i, bin1_min] += deltaA * deltaD
 *                             outData[i, bin1_min] += data * deltaA * deltaD
 *                             for j in range(bin1_min + 1, bin1_max):             # <<<<<<<<<<<<<<
 *                                 outCount[i, j] += deltaA
 *                                 outData[i, j] += data * deltaA
 */
                __pyx_t_109 = __pyx_v_bin1_max;
                for (__pyx_t_110 = (__pyx_v_bin1_min + 1); __pyx_t_110 < __pyx_t_109; __pyx_t_110+=1) {
                  __pyx_v_j = __pyx_t_110;
 563:                                 outCount[i, j] += deltaA
                  /* "splitPixel.pyx":563
 *                             outData[i, bin1_min] += data * deltaA * deltaD
 *                             for j in range(bin1_min + 1, bin1_max):
 *                                 outCount[i, j] += deltaA             # <<<<<<<<<<<<<<
 *                                 outData[i, j] += data * deltaA
 *                             outCount[i, bin1_max] += deltaA * deltaU
 */
                  __pyx_t_111 = __pyx_v_i;
                  __pyx_t_112 = __pyx_v_j;
                  *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outCount.rcbuffer->pybuffer.buf, __pyx_t_111, __pyx_pybuffernd_outCount.diminfo[0].strides, __pyx_t_112, __pyx_pybuffernd_outCount.diminfo[1].strides) += __pyx_v_deltaA;
 564:                                 outData[i, j] += data * deltaA
                  /* "splitPixel.pyx":564
 *                             for j in range(bin1_min + 1, bin1_max):
 *                                 outCount[i, j] += deltaA
 *                                 outData[i, j] += data * deltaA             # <<<<<<<<<<<<<<
 *                             outCount[i, bin1_max] += deltaA * deltaU
 *                             outData[i, bin1_max] += data * deltaA * deltaU
 */
                  __pyx_t_113 = __pyx_v_i;
                  __pyx_t_114 = __pyx_v_j;
                  *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outData.rcbuffer->pybuffer.buf, __pyx_t_113, __pyx_pybuffernd_outData.diminfo[0].strides, __pyx_t_114, __pyx_pybuffernd_outData.diminfo[1].strides) += (__pyx_v_data * __pyx_v_deltaA);
                }
 565:                             outCount[i, bin1_max] += deltaA * deltaU
                /* "splitPixel.pyx":565
 *                                 outCount[i, j] += deltaA
 *                                 outData[i, j] += data * deltaA
 *                             outCount[i, bin1_max] += deltaA * deltaU             # <<<<<<<<<<<<<<
 *                             outData[i, bin1_max] += data * deltaA * deltaU
 *                     for j in range(bin1_min + 1, bin1_max):
 */
                __pyx_t_109 = __pyx_v_i;
                __pyx_t_110 = __pyx_v_bin1_max;
                *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outCount.rcbuffer->pybuffer.buf, __pyx_t_109, __pyx_pybuffernd_outCount.diminfo[0].strides, __pyx_t_110, __pyx_pybuffernd_outCount.diminfo[1].strides) += (__pyx_v_deltaA * __pyx_v_deltaU);
 566:                             outData[i, bin1_max] += data * deltaA * deltaU
                /* "splitPixel.pyx":566
 *                                 outData[i, j] += data * deltaA
 *                             outCount[i, bin1_max] += deltaA * deltaU
 *                             outData[i, bin1_max] += data * deltaA * deltaU             # <<<<<<<<<<<<<<
 *                     for j in range(bin1_min + 1, bin1_max):
 *                             outCount[bin0_min, j] += deltaA * deltaL
 */
                __pyx_t_115 = __pyx_v_i;
                __pyx_t_116 = __pyx_v_bin1_max;
                *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outData.rcbuffer->pybuffer.buf, __pyx_t_115, __pyx_pybuffernd_outData.diminfo[0].strides, __pyx_t_116, __pyx_pybuffernd_outData.diminfo[1].strides) += ((__pyx_v_data * __pyx_v_deltaA) * __pyx_v_deltaU);
              }
 567:                     for j in range(bin1_min + 1, bin1_max):
              /* "splitPixel.pyx":567
 *                             outCount[i, bin1_max] += deltaA * deltaU
 *                             outData[i, bin1_max] += data * deltaA * deltaU
 *                     for j in range(bin1_min + 1, bin1_max):             # <<<<<<<<<<<<<<
 *                             outCount[bin0_min, j] += deltaA * deltaL
 *                             outData[bin0_min, j] += data * deltaA * deltaL
 */
              __pyx_t_103 = __pyx_v_bin1_max;
              for (__pyx_t_104 = (__pyx_v_bin1_min + 1); __pyx_t_104 < __pyx_t_103; __pyx_t_104+=1) {
                __pyx_v_j = __pyx_t_104;
 568:                             outCount[bin0_min, j] += deltaA * deltaL
                /* "splitPixel.pyx":568
 *                             outData[i, bin1_max] += data * deltaA * deltaU
 *                     for j in range(bin1_min + 1, bin1_max):
 *                             outCount[bin0_min, j] += deltaA * deltaL             # <<<<<<<<<<<<<<
 *                             outData[bin0_min, j] += data * deltaA * deltaL
 * 
 */
                __pyx_t_117 = __pyx_v_bin0_min;
                __pyx_t_118 = __pyx_v_j;
                *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outCount.rcbuffer->pybuffer.buf, __pyx_t_117, __pyx_pybuffernd_outCount.diminfo[0].strides, __pyx_t_118, __pyx_pybuffernd_outCount.diminfo[1].strides) += (__pyx_v_deltaA * __pyx_v_deltaL);
 569:                             outData[bin0_min, j] += data * deltaA * deltaL
                /* "splitPixel.pyx":569
 *                     for j in range(bin1_min + 1, bin1_max):
 *                             outCount[bin0_min, j] += deltaA * deltaL
 *                             outData[bin0_min, j] += data * deltaA * deltaL             # <<<<<<<<<<<<<<
 * 
 *                             outCount[bin0_max, j] += deltaA * deltaR
 */
                __pyx_t_119 = __pyx_v_bin0_min;
                __pyx_t_120 = __pyx_v_j;
                *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outData.rcbuffer->pybuffer.buf, __pyx_t_119, __pyx_pybuffernd_outData.diminfo[0].strides, __pyx_t_120, __pyx_pybuffernd_outData.diminfo[1].strides) += ((__pyx_v_data * __pyx_v_deltaA) * __pyx_v_deltaL);
 570: 
 571:                             outCount[bin0_max, j] += deltaA * deltaR
                /* "splitPixel.pyx":571
 *                             outData[bin0_min, j] += data * deltaA * deltaL
 * 
 *                             outCount[bin0_max, j] += deltaA * deltaR             # <<<<<<<<<<<<<<
 *                             outData[bin0_max, j] += data * deltaA * deltaR
 * 
 */
                __pyx_t_121 = __pyx_v_bin0_max;
                __pyx_t_122 = __pyx_v_j;
                *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outCount.rcbuffer->pybuffer.buf, __pyx_t_121, __pyx_pybuffernd_outCount.diminfo[0].strides, __pyx_t_122, __pyx_pybuffernd_outCount.diminfo[1].strides) += (__pyx_v_deltaA * __pyx_v_deltaR);
 572:                             outData[bin0_max, j] += data * deltaA * deltaR
                /* "splitPixel.pyx":572
 * 
 *                             outCount[bin0_max, j] += deltaA * deltaR
 *                             outData[bin0_max, j] += data * deltaA * deltaR             # <<<<<<<<<<<<<<
 * 
 *     #with nogil:
 */
                __pyx_t_123 = __pyx_v_bin0_max;
                __pyx_t_124 = __pyx_v_j;
                *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outData.rcbuffer->pybuffer.buf, __pyx_t_123, __pyx_pybuffernd_outData.diminfo[0].strides, __pyx_t_124, __pyx_pybuffernd_outData.diminfo[1].strides) += ((__pyx_v_data * __pyx_v_deltaA) * __pyx_v_deltaR);
              }
            }
            __pyx_L48:;
          }
          __pyx_L44:;
          __pyx_L29_continue:;
        }
 573: 
 574:     #with nogil:
 575:         for i in range(bins0):
        /* "splitPixel.pyx":575
 * 
 *     #with nogil:
 *         for i in range(bins0):             # <<<<<<<<<<<<<<
 *             for j in range(bins1):
 *                 if outCount[i, j] > epsilon:
 */
        __pyx_t_11 = __pyx_v_bins0;
        for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_11; __pyx_t_2+=1) {
          __pyx_v_i = __pyx_t_2;
 576:             for j in range(bins1):
          /* "splitPixel.pyx":576
 *     #with nogil:
 *         for i in range(bins0):
 *             for j in range(bins1):             # <<<<<<<<<<<<<<
 *                 if outCount[i, j] > epsilon:
 *                     outMerge[i, j] = outData[i, j] / outCount[i, j]
 */
          __pyx_t_103 = __pyx_v_bins1;
          for (__pyx_t_104 = 0; __pyx_t_104 < __pyx_t_103; __pyx_t_104+=1) {
            __pyx_v_j = __pyx_t_104;
 577:                 if outCount[i, j] > epsilon:
            /* "splitPixel.pyx":577
 *         for i in range(bins0):
 *             for j in range(bins1):
 *                 if outCount[i, j] > epsilon:             # <<<<<<<<<<<<<<
 *                     outMerge[i, j] = outData[i, j] / outCount[i, j]
 *                 else:
 */
            __pyx_t_125 = __pyx_v_i;
            __pyx_t_126 = __pyx_v_j;
            __pyx_t_21 = ((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outCount.rcbuffer->pybuffer.buf, __pyx_t_125, __pyx_pybuffernd_outCount.diminfo[0].strides, __pyx_t_126, __pyx_pybuffernd_outCount.diminfo[1].strides)) > __pyx_v_epsilon);
            if (__pyx_t_21) {
 578:                     outMerge[i, j] = outData[i, j] / outCount[i, j]
              /* "splitPixel.pyx":578
 *             for j in range(bins1):
 *                 if outCount[i, j] > epsilon:
 *                     outMerge[i, j] = outData[i, j] / outCount[i, j]             # <<<<<<<<<<<<<<
 *                 else:
 *                     outMerge[i, j] = cdummy
 */
              __pyx_t_127 = __pyx_v_i;
              __pyx_t_128 = __pyx_v_j;
              __pyx_t_129 = __pyx_v_i;
              __pyx_t_130 = __pyx_v_j;
              __pyx_t_131 = __pyx_v_i;
              __pyx_t_132 = __pyx_v_j;
              *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outMerge.rcbuffer->pybuffer.buf, __pyx_t_131, __pyx_pybuffernd_outMerge.diminfo[0].strides, __pyx_t_132, __pyx_pybuffernd_outMerge.diminfo[1].strides) = ((*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outData.rcbuffer->pybuffer.buf, __pyx_t_127, __pyx_pybuffernd_outData.diminfo[0].strides, __pyx_t_128, __pyx_pybuffernd_outData.diminfo[1].strides)) / (*__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outCount.rcbuffer->pybuffer.buf, __pyx_t_129, __pyx_pybuffernd_outCount.diminfo[0].strides, __pyx_t_130, __pyx_pybuffernd_outCount.diminfo[1].strides)));
              goto __pyx_L61;
            }
            /*else*/ {
 579:                 else:
 580:                     outMerge[i, j] = cdummy
              /* "splitPixel.pyx":580
 *                     outMerge[i, j] = outData[i, j] / outCount[i, j]
 *                 else:
 *                     outMerge[i, j] = cdummy             # <<<<<<<<<<<<<<
 *     return outMerge.T, edges0, edges1, outData.T, outCount.T
 * 
 */
              __pyx_t_133 = __pyx_v_i;
              __pyx_t_134 = __pyx_v_j;
              *__Pyx_BufPtrStrided2d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_outMerge.rcbuffer->pybuffer.buf, __pyx_t_133, __pyx_pybuffernd_outMerge.diminfo[0].strides, __pyx_t_134, __pyx_pybuffernd_outMerge.diminfo[1].strides) = __pyx_v_cdummy;
            }
            __pyx_L61:;
          }
        }
      }
 581:     return outMerge.T, edges0, edges1, outData.T, outCount.T
  /* "splitPixel.pyx":581
 *                 else:
 *                     outMerge[i, j] = cdummy
 *     return outMerge.T, edges0, edges1, outData.T, outCount.T             # <<<<<<<<<<<<<<
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyObject_GetAttr(((PyObject *)__pyx_v_outMerge), __pyx_n_s__T); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_v_outData), __pyx_n_s__T); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_9 = PyObject_GetAttr(((PyObject *)__pyx_v_outCount), __pyx_n_s__T); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_14 = PyTuple_New(5); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_14);
  PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_8);
  __Pyx_INCREF(((PyObject *)__pyx_v_edges0));
  PyTuple_SET_ITEM(__pyx_t_14, 1, ((PyObject *)__pyx_v_edges0));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_edges0));
  __Pyx_INCREF(((PyObject *)__pyx_v_edges1));
  PyTuple_SET_ITEM(__pyx_t_14, 2, ((PyObject *)__pyx_v_edges1));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_edges1));
  PyTuple_SET_ITEM(__pyx_t_14, 3, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_14, 4, __pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_9);
  __pyx_t_8 = 0;
  __pyx_t_4 = 0;
  __pyx_t_9 = 0;
  __pyx_r = ((PyObject *)__pyx_t_14);
  __pyx_t_14 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_14);
  __PYX_XDEC_MEMVIEW(&__pyx_t_25, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_t_26, 1);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cdata.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cpos.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_edges0.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_edges1.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_outCount.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_outData.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_outMerge.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("splitPixel.fullSplit2D", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cdata.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_cpos.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_edges0.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_edges1.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_outCount.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_outData.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_outMerge.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_cpos);
  __Pyx_XDECREF((PyObject *)__pyx_v_cdata);
  __Pyx_XDECREF((PyObject *)__pyx_v_outData);
  __Pyx_XDECREF((PyObject *)__pyx_v_outCount);
  __Pyx_XDECREF((PyObject *)__pyx_v_outMerge);
  __Pyx_XDECREF((PyObject *)__pyx_v_edges0);
  __Pyx_XDECREF((PyObject *)__pyx_v_edges1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_cmask, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_cflat, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_cdark, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_cpolarization, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_csolidangle, 1);
  __Pyx_XDECREF((PyObject *)__pyx_v_pos);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/
static int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0);
  __pyx_r = __pyx_pf_5numpy_7ndarray___getbuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags));
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 582: