Generated by Cython 0.29.26
Yellow lines hint at Python interaction.
Click on a line that starts with a "+" to see the C code that Cython generated for it.
Raw output: pyrost.c
+0001: cimport numpy as np
__pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_5) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0002: import numpy as np
__pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_1) < 0) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0003: from libc.math cimport sqrt, exp, pi, floor, ceil, fabs
0004: from cython.parallel import prange, parallel
0005: from libc.stdlib cimport malloc, free
0006: from libc.string cimport memset
0007: cimport openmp
0008: from . cimport pyfftw
+0009: from . import pyfftw
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_pyfftw); __Pyx_GIVEREF(__pyx_n_s_pyfftw); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_pyfftw); __pyx_t_2 = __Pyx_Import(__pyx_n_s__32, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_pyfftw); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyfftw, __pyx_t_1) < 0) __PYX_ERR(0, 9, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0010: from . cimport simulation as sim
0011:
0012: # Numpy must be initialized. When using numpy from C or Cython you must
0013: # *ALWAYS* do that, or you will have segfaults
+0014: np.import_array()
__pyx_t_3 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 14, __pyx_L1_error)
0015:
0016: ctypedef fused float_t:
0017: np.float64_t
0018: np.float32_t
0019:
0020: ctypedef fused uint_t:
0021: np.uint64_t
0022: np.uint32_t
0023:
0024: DEF FLOAT_MAX = 1.7976931348623157e+308
0025: DEF M_1_SQRT2PI = 0.3989422804014327
0026:
+0027: ctypedef double (*loss_func)(double a) nogil
typedef double (*__pyx_t_6pyrost_3bin_6pyrost_loss_func)(double);
0028:
+0029: cdef double Huber_loss(double a) nogil:
static double __pyx_f_6pyrost_3bin_6pyrost_Huber_loss(double __pyx_v_a) {
double __pyx_v_aa;
double __pyx_r;
/* … */
/* function exit code */
__pyx_L0:;
return __pyx_r;
}
+0030: cdef double aa = fabs(a)
__pyx_v_aa = fabs(__pyx_v_a);
+0031: if aa < 1.345:
__pyx_t_1 = ((__pyx_v_aa < 1.345) != 0);
if (__pyx_t_1) {
/* … */
}
+0032: return 0.5 * a * a
__pyx_r = ((0.5 * __pyx_v_a) * __pyx_v_a);
goto __pyx_L0;
+0033: elif 1.345 <= aa < 3.0:
__pyx_t_1 = (1.345 <= __pyx_v_aa);
if (__pyx_t_1) {
__pyx_t_1 = (__pyx_v_aa < 3.0);
}
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
}
+0034: return 1.345 * (aa - 0.6725)
__pyx_r = (1.345 * (__pyx_v_aa - 0.6725));
goto __pyx_L0;
0035: else:
+0036: return 3.1304875
/*else*/ {
__pyx_r = 3.1304875;
goto __pyx_L0;
}
0037:
+0038: cdef double Epsilon_loss(double a) nogil:
static double __pyx_f_6pyrost_3bin_6pyrost_Epsilon_loss(double __pyx_v_a) {
double __pyx_v_aa;
double __pyx_r;
/* … */
/* function exit code */
__pyx_L0:;
return __pyx_r;
}
+0039: cdef double aa = fabs(a)
__pyx_v_aa = fabs(__pyx_v_a);
+0040: if aa < 0.25:
__pyx_t_1 = ((__pyx_v_aa < 0.25) != 0);
if (__pyx_t_1) {
/* … */
}
+0041: return 0.0
__pyx_r = 0.0;
goto __pyx_L0;
+0042: elif 0.25 <= aa < 3.0:
__pyx_t_1 = (0.25 <= __pyx_v_aa);
if (__pyx_t_1) {
__pyx_t_1 = (__pyx_v_aa < 3.0);
}
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
}
+0043: return aa - 0.25
__pyx_r = (__pyx_v_aa - 0.25);
goto __pyx_L0;
0044: else:
+0045: return 2.75
/*else*/ {
__pyx_r = 2.75;
goto __pyx_L0;
}
0046:
+0047: cdef double l2_loss(double a) nogil:
static double __pyx_f_6pyrost_3bin_6pyrost_l2_loss(double __pyx_v_a) {
double __pyx_r;
/* … */
/* function exit code */
__pyx_L0:;
return __pyx_r;
}
+0048: if -3.0 < a < 3.0:
__pyx_t_1 = (-3.0 < __pyx_v_a);
if (__pyx_t_1) {
__pyx_t_1 = (__pyx_v_a < 3.0);
}
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
}
+0049: return a * a
__pyx_r = (__pyx_v_a * __pyx_v_a);
goto __pyx_L0;
0050: else:
+0051: return 9.0
/*else*/ {
__pyx_r = 9.0;
goto __pyx_L0;
}
0052:
+0053: cdef double l1_loss(double a) nogil:
static double __pyx_f_6pyrost_3bin_6pyrost_l1_loss(double __pyx_v_a) {
double __pyx_r;
/* … */
/* function exit code */
__pyx_L0:;
return __pyx_r;
}
+0054: if -3.0 < a < 3.0:
__pyx_t_1 = (-3.0 < __pyx_v_a);
if (__pyx_t_1) {
__pyx_t_1 = (__pyx_v_a < 3.0);
}
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
}
+0055: return fabs(a)
__pyx_r = fabs(__pyx_v_a);
goto __pyx_L0;
0056: else:
+0057: return 3.0
/*else*/ {
__pyx_r = 3.0;
goto __pyx_L0;
}
0058:
+0059: cdef loss_func choose_loss(str loss):
static __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_f_6pyrost_3bin_6pyrost_choose_loss(PyObject *__pyx_v_loss) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_r;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("choose_loss", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_WriteUnraisable("pyrost.bin.pyrost.choose_loss", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
__pyx_r = 0;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
0060: cdef loss_func f
+0061: if loss == 'Epsilon':
__pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_loss, __pyx_n_u_Epsilon, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 61, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+0062: f = Epsilon_loss
__pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_Epsilon_loss;
+0063: elif loss == 'Huber':
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_loss, __pyx_n_u_Huber, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 63, __pyx_L1_error) __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* … */ goto __pyx_L3; }
+0064: f = Huber_loss
__pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_Huber_loss;
+0065: elif loss == 'L2':
__pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_loss, __pyx_n_u_L2, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 65, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+0066: f = l2_loss
__pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_l2_loss;
+0067: elif loss == 'L1':
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_loss, __pyx_n_u_L1, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 67, __pyx_L1_error) __pyx_t_1 = (__pyx_t_2 != 0); if (likely(__pyx_t_1)) { /* … */ goto __pyx_L3; }
+0068: f = l1_loss
__pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_l1_loss;
0069: else:
+0070: raise ValueError('loss keyword is invalid')
/*else*/ {
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 70, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_Raise(__pyx_t_3, 0, 0, 0);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__PYX_ERR(0, 70, __pyx_L1_error)
}
__pyx_L3:;
/* … */
__pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_u_loss_keyword_is_invalid); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 70, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple_);
__Pyx_GIVEREF(__pyx_tuple_);
+0071: return f
__pyx_r = __pyx_v_f; goto __pyx_L0;
0072:
+0073: cdef float_t min_float(float_t* array, int a) nogil:
static __pyx_t_5numpy_float64_t __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_min_float(__pyx_t_5numpy_float64_t *__pyx_v_array, int __pyx_v_a) {
int __pyx_v_i;
__pyx_t_5numpy_float64_t __pyx_v_mv;
__pyx_t_5numpy_float64_t __pyx_r;
/* … */
/* function exit code */
__pyx_L0:;
return __pyx_r;
}
static __pyx_t_5numpy_float32_t __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_min_float(__pyx_t_5numpy_float32_t *__pyx_v_array, int __pyx_v_a) {
int __pyx_v_i;
__pyx_t_5numpy_float32_t __pyx_v_mv;
__pyx_t_5numpy_float32_t __pyx_r;
/* … */
/* function exit code */
__pyx_L0:;
return __pyx_r;
}
0074: cdef:
0075: int i
+0076: float_t mv = array[0]
__pyx_v_mv = (__pyx_v_array[0]); /* … */ __pyx_v_mv = (__pyx_v_array[0]);
+0077: for i in range(a):
__pyx_t_1 = __pyx_v_a;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_i = __pyx_t_3;
/* … */
__pyx_t_1 = __pyx_v_a;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_i = __pyx_t_3;
+0078: if array[i] < mv:
__pyx_t_4 = (((__pyx_v_array[__pyx_v_i]) < __pyx_v_mv) != 0);
if (__pyx_t_4) {
/* … */
}
}
/* … */
__pyx_t_4 = (((__pyx_v_array[__pyx_v_i]) < __pyx_v_mv) != 0);
if (__pyx_t_4) {
/* … */
}
}
+0079: mv = array[i]
__pyx_v_mv = (__pyx_v_array[__pyx_v_i]);
/* … */
__pyx_v_mv = (__pyx_v_array[__pyx_v_i]);
+0080: return mv
__pyx_r = __pyx_v_mv; goto __pyx_L0; /* … */ __pyx_r = __pyx_v_mv; goto __pyx_L0;
0081:
+0082: cdef float_t max_float(float_t* array, int a) nogil:
static __pyx_t_5numpy_float64_t __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_max_float(__pyx_t_5numpy_float64_t *__pyx_v_array, int __pyx_v_a) {
int __pyx_v_i;
__pyx_t_5numpy_float64_t __pyx_v_mv;
__pyx_t_5numpy_float64_t __pyx_r;
/* … */
/* function exit code */
__pyx_L0:;
return __pyx_r;
}
static __pyx_t_5numpy_float32_t __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_max_float(__pyx_t_5numpy_float32_t *__pyx_v_array, int __pyx_v_a) {
int __pyx_v_i;
__pyx_t_5numpy_float32_t __pyx_v_mv;
__pyx_t_5numpy_float32_t __pyx_r;
/* … */
/* function exit code */
__pyx_L0:;
return __pyx_r;
}
0083: cdef:
0084: int i
+0085: float_t mv = array[0]
__pyx_v_mv = (__pyx_v_array[0]); /* … */ __pyx_v_mv = (__pyx_v_array[0]);
+0086: for i in range(a):
__pyx_t_1 = __pyx_v_a;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_i = __pyx_t_3;
/* … */
__pyx_t_1 = __pyx_v_a;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_i = __pyx_t_3;
+0087: if array[i] > mv:
__pyx_t_4 = (((__pyx_v_array[__pyx_v_i]) > __pyx_v_mv) != 0);
if (__pyx_t_4) {
/* … */
}
}
/* … */
__pyx_t_4 = (((__pyx_v_array[__pyx_v_i]) > __pyx_v_mv) != 0);
if (__pyx_t_4) {
/* … */
}
}
+0088: mv = array[i]
__pyx_v_mv = (__pyx_v_array[__pyx_v_i]);
/* … */
__pyx_v_mv = (__pyx_v_array[__pyx_v_i]);
+0089: return mv
__pyx_r = __pyx_v_mv; goto __pyx_L0; /* … */ __pyx_r = __pyx_v_mv; goto __pyx_L0;
0090:
+0091: cdef double rbf(double dsq, double h) nogil:
static double __pyx_f_6pyrost_3bin_6pyrost_rbf(double __pyx_v_dsq, double __pyx_v_h) {
double __pyx_r;
/* … */
/* function exit code */
__pyx_L0:;
return __pyx_r;
}
+0092: return exp(-0.5 * dsq / (h * h)) * M_1_SQRT2PI
__pyx_r = (exp(((-0.5 * __pyx_v_dsq) / (__pyx_v_h * __pyx_v_h))) * 0.3989422804014327); goto __pyx_L0;
0093:
+0094: cdef void KR_frame_1d(float_t[:, ::1] I0, float_t[:, ::1] w0, uint_t[:, ::1] I_n,
static void __pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_KR_frame_1d(__Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_w0, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float64_t __pyx_v_dj, double __pyx_v_ds_x, double __pyx_v_h) {
int __pyx_v_X;
int __pyx_v_X0;
int __pyx_v_k;
int __pyx_v_kk;
int __pyx_v_k0;
int __pyx_v_kk0;
int __pyx_v_kk1;
int __pyx_v_dn;
double __pyx_v_x;
double __pyx_v_r;
/* … */
/* function exit code */
}
static void __pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_KR_frame_1d(__Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_w0, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float64_t __pyx_v_dj, double __pyx_v_ds_x, double __pyx_v_h) {
int __pyx_v_X;
int __pyx_v_X0;
int __pyx_v_k;
int __pyx_v_kk;
int __pyx_v_k0;
int __pyx_v_kk0;
int __pyx_v_kk1;
int __pyx_v_dn;
double __pyx_v_x;
double __pyx_v_r;
/* … */
/* function exit code */
}
static void __pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_KR_frame_1d(__Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_w0, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float32_t __pyx_v_dj, double __pyx_v_ds_x, double __pyx_v_h) {
int __pyx_v_X;
int __pyx_v_X0;
int __pyx_v_k;
int __pyx_v_kk;
int __pyx_v_k0;
int __pyx_v_kk0;
int __pyx_v_kk1;
int __pyx_v_dn;
double __pyx_v_x;
double __pyx_v_r;
/* … */
/* function exit code */
}
static void __pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_KR_frame_1d(__Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_w0, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float32_t __pyx_v_dj, double __pyx_v_ds_x, double __pyx_v_h) {
int __pyx_v_X;
int __pyx_v_X0;
int __pyx_v_k;
int __pyx_v_kk;
int __pyx_v_k0;
int __pyx_v_kk0;
int __pyx_v_kk1;
int __pyx_v_dn;
double __pyx_v_x;
double __pyx_v_r;
/* … */
/* function exit code */
}
0095: float_t[:, ::1] W, float_t[:, :, ::1] u, float_t dj,
0096: double ds_x, double h) nogil:
+0097: cdef int X = I_n.shape[1], X0 = I0.shape[1], k, kk, k0, kk0, kk1
__pyx_v_X = (__pyx_v_I_n.shape[1]); __pyx_v_X0 = (__pyx_v_I0.shape[1]); /* … */ __pyx_v_X = (__pyx_v_I_n.shape[1]); __pyx_v_X0 = (__pyx_v_I0.shape[1]); /* … */ __pyx_v_X = (__pyx_v_I_n.shape[1]); __pyx_v_X0 = (__pyx_v_I0.shape[1]); /* … */ __pyx_v_X = (__pyx_v_I_n.shape[1]); __pyx_v_X0 = (__pyx_v_I0.shape[1]);
+0098: cdef int dn = <int>ceil((4.0 * h) / ds_x)
__pyx_v_dn = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_x))); /* … */ __pyx_v_dn = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_x))); /* … */ __pyx_v_dn = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_x))); /* … */ __pyx_v_dn = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_x)));
0099: cdef double x, r
0100:
+0101: for k in range(X):
__pyx_t_1 = __pyx_v_X;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_k = __pyx_t_3;
/* … */
__pyx_t_1 = __pyx_v_X;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_k = __pyx_t_3;
/* … */
__pyx_t_1 = __pyx_v_X;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_k = __pyx_t_3;
/* … */
__pyx_t_1 = __pyx_v_X;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_k = __pyx_t_3;
+0102: x = u[1, 0, k] - dj
__pyx_t_4 = 1;
__pyx_t_5 = 0;
__pyx_t_6 = __pyx_v_k;
__pyx_v_x = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_4 * __pyx_v_u.strides[0]) ) + __pyx_t_5 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) ))) - __pyx_v_dj);
/* … */
__pyx_t_4 = 1;
__pyx_t_5 = 0;
__pyx_t_6 = __pyx_v_k;
__pyx_v_x = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_4 * __pyx_v_u.strides[0]) ) + __pyx_t_5 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) ))) - __pyx_v_dj);
/* … */
__pyx_t_4 = 1;
__pyx_t_5 = 0;
__pyx_t_6 = __pyx_v_k;
__pyx_v_x = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_4 * __pyx_v_u.strides[0]) ) + __pyx_t_5 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) ))) - __pyx_v_dj);
/* … */
__pyx_t_4 = 1;
__pyx_t_5 = 0;
__pyx_t_6 = __pyx_v_k;
__pyx_v_x = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_4 * __pyx_v_u.strides[0]) ) + __pyx_t_5 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) ))) - __pyx_v_dj);
+0103: k0 = <int>(x / ds_x) + 1
__pyx_v_k0 = (((int)(__pyx_v_x / __pyx_v_ds_x)) + 1);
/* … */
__pyx_v_k0 = (((int)(__pyx_v_x / __pyx_v_ds_x)) + 1);
/* … */
__pyx_v_k0 = (((int)(__pyx_v_x / __pyx_v_ds_x)) + 1);
/* … */
__pyx_v_k0 = (((int)(__pyx_v_x / __pyx_v_ds_x)) + 1);
0104:
+0105: kk0 = k0 - dn if k0 - dn > 0 else 0
if ((((__pyx_v_k0 - __pyx_v_dn) > 0) != 0)) {
__pyx_t_7 = (__pyx_v_k0 - __pyx_v_dn);
} else {
__pyx_t_7 = 0;
}
__pyx_v_kk0 = __pyx_t_7;
/* … */
if ((((__pyx_v_k0 - __pyx_v_dn) > 0) != 0)) {
__pyx_t_7 = (__pyx_v_k0 - __pyx_v_dn);
} else {
__pyx_t_7 = 0;
}
__pyx_v_kk0 = __pyx_t_7;
/* … */
if ((((__pyx_v_k0 - __pyx_v_dn) > 0) != 0)) {
__pyx_t_7 = (__pyx_v_k0 - __pyx_v_dn);
} else {
__pyx_t_7 = 0;
}
__pyx_v_kk0 = __pyx_t_7;
/* … */
if ((((__pyx_v_k0 - __pyx_v_dn) > 0) != 0)) {
__pyx_t_7 = (__pyx_v_k0 - __pyx_v_dn);
} else {
__pyx_t_7 = 0;
}
__pyx_v_kk0 = __pyx_t_7;
+0106: kk1 = k0 + dn if k0 + dn < X0 else X0
if ((((__pyx_v_k0 + __pyx_v_dn) < __pyx_v_X0) != 0)) {
__pyx_t_7 = (__pyx_v_k0 + __pyx_v_dn);
} else {
__pyx_t_7 = __pyx_v_X0;
}
__pyx_v_kk1 = __pyx_t_7;
/* … */
if ((((__pyx_v_k0 + __pyx_v_dn) < __pyx_v_X0) != 0)) {
__pyx_t_7 = (__pyx_v_k0 + __pyx_v_dn);
} else {
__pyx_t_7 = __pyx_v_X0;
}
__pyx_v_kk1 = __pyx_t_7;
/* … */
if ((((__pyx_v_k0 + __pyx_v_dn) < __pyx_v_X0) != 0)) {
__pyx_t_7 = (__pyx_v_k0 + __pyx_v_dn);
} else {
__pyx_t_7 = __pyx_v_X0;
}
__pyx_v_kk1 = __pyx_t_7;
/* … */
if ((((__pyx_v_k0 + __pyx_v_dn) < __pyx_v_X0) != 0)) {
__pyx_t_7 = (__pyx_v_k0 + __pyx_v_dn);
} else {
__pyx_t_7 = __pyx_v_X0;
}
__pyx_v_kk1 = __pyx_t_7;
0107:
+0108: for kk in range(kk0, kk1):
__pyx_t_7 = __pyx_v_kk1;
__pyx_t_8 = __pyx_t_7;
for (__pyx_t_9 = __pyx_v_kk0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
__pyx_v_kk = __pyx_t_9;
/* … */
__pyx_t_7 = __pyx_v_kk1;
__pyx_t_8 = __pyx_t_7;
for (__pyx_t_9 = __pyx_v_kk0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
__pyx_v_kk = __pyx_t_9;
/* … */
__pyx_t_7 = __pyx_v_kk1;
__pyx_t_8 = __pyx_t_7;
for (__pyx_t_9 = __pyx_v_kk0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
__pyx_v_kk = __pyx_t_9;
/* … */
__pyx_t_7 = __pyx_v_kk1;
__pyx_t_8 = __pyx_t_7;
for (__pyx_t_9 = __pyx_v_kk0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
__pyx_v_kk = __pyx_t_9;
+0109: r = rbf((ds_x * kk - x) * (ds_x * kk - x), h)
__pyx_v_r = __pyx_f_6pyrost_3bin_6pyrost_rbf((((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x) * ((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x)), __pyx_v_h);
/* … */
__pyx_v_r = __pyx_f_6pyrost_3bin_6pyrost_rbf((((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x) * ((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x)), __pyx_v_h);
/* … */
__pyx_v_r = __pyx_f_6pyrost_3bin_6pyrost_rbf((((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x) * ((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x)), __pyx_v_h);
/* … */
__pyx_v_r = __pyx_f_6pyrost_3bin_6pyrost_rbf((((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x) * ((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x)), __pyx_v_h);
+0110: I0[0, kk] += I_n[0, k] * W[0, k] * r
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_k;
__pyx_t_4 = 0;
__pyx_t_10 = __pyx_v_k;
__pyx_t_11 = 0;
__pyx_t_12 = __pyx_v_kk;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_11 * __pyx_v_I0.strides[0]) )) + __pyx_t_12)) )) += (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_6 * __pyx_v_I_n.strides[0]) )) + __pyx_t_5)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_4 * __pyx_v_W.strides[0]) )) + __pyx_t_10)) )))) * __pyx_v_r);
/* … */
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_k;
__pyx_t_4 = 0;
__pyx_t_10 = __pyx_v_k;
__pyx_t_11 = 0;
__pyx_t_12 = __pyx_v_kk;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_11 * __pyx_v_I0.strides[0]) )) + __pyx_t_12)) )) += (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_6 * __pyx_v_I_n.strides[0]) )) + __pyx_t_5)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_4 * __pyx_v_W.strides[0]) )) + __pyx_t_10)) )))) * __pyx_v_r);
/* … */
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_k;
__pyx_t_4 = 0;
__pyx_t_10 = __pyx_v_k;
__pyx_t_11 = 0;
__pyx_t_12 = __pyx_v_kk;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_11 * __pyx_v_I0.strides[0]) )) + __pyx_t_12)) )) += (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_6 * __pyx_v_I_n.strides[0]) )) + __pyx_t_5)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_4 * __pyx_v_W.strides[0]) )) + __pyx_t_10)) )))) * __pyx_v_r);
/* … */
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_k;
__pyx_t_4 = 0;
__pyx_t_10 = __pyx_v_k;
__pyx_t_11 = 0;
__pyx_t_12 = __pyx_v_kk;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_11 * __pyx_v_I0.strides[0]) )) + __pyx_t_12)) )) += (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_6 * __pyx_v_I_n.strides[0]) )) + __pyx_t_5)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_4 * __pyx_v_W.strides[0]) )) + __pyx_t_10)) )))) * __pyx_v_r);
+0111: w0[0, kk] += W[0, k] * W[0, k] * r
__pyx_t_10 = 0;
__pyx_t_4 = __pyx_v_k;
__pyx_t_5 = 0;
__pyx_t_6 = __pyx_v_k;
__pyx_t_12 = 0;
__pyx_t_11 = __pyx_v_kk;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_w0.data + __pyx_t_12 * __pyx_v_w0.strides[0]) )) + __pyx_t_11)) )) += (((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_10 * __pyx_v_W.strides[0]) )) + __pyx_t_4)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_5 * __pyx_v_W.strides[0]) )) + __pyx_t_6)) )))) * __pyx_v_r);
}
}
/* … */
__pyx_t_10 = 0;
__pyx_t_4 = __pyx_v_k;
__pyx_t_5 = 0;
__pyx_t_6 = __pyx_v_k;
__pyx_t_12 = 0;
__pyx_t_11 = __pyx_v_kk;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_w0.data + __pyx_t_12 * __pyx_v_w0.strides[0]) )) + __pyx_t_11)) )) += (((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_10 * __pyx_v_W.strides[0]) )) + __pyx_t_4)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_5 * __pyx_v_W.strides[0]) )) + __pyx_t_6)) )))) * __pyx_v_r);
}
}
/* … */
__pyx_t_10 = 0;
__pyx_t_4 = __pyx_v_k;
__pyx_t_5 = 0;
__pyx_t_6 = __pyx_v_k;
__pyx_t_12 = 0;
__pyx_t_11 = __pyx_v_kk;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_w0.data + __pyx_t_12 * __pyx_v_w0.strides[0]) )) + __pyx_t_11)) )) += (((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_10 * __pyx_v_W.strides[0]) )) + __pyx_t_4)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_5 * __pyx_v_W.strides[0]) )) + __pyx_t_6)) )))) * __pyx_v_r);
}
}
/* … */
__pyx_t_10 = 0;
__pyx_t_4 = __pyx_v_k;
__pyx_t_5 = 0;
__pyx_t_6 = __pyx_v_k;
__pyx_t_12 = 0;
__pyx_t_11 = __pyx_v_kk;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_w0.data + __pyx_t_12 * __pyx_v_w0.strides[0]) )) + __pyx_t_11)) )) += (((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_10 * __pyx_v_W.strides[0]) )) + __pyx_t_4)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_5 * __pyx_v_W.strides[0]) )) + __pyx_t_6)) )))) * __pyx_v_r);
}
}
0112:
+0113: cdef void KR_frame_2d(float_t[:, ::1] I0, float_t[:, ::1] w0, uint_t[:, ::1] I_n,
static void __pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_KR_frame_2d(__Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_w0, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float64_t __pyx_v_di, __pyx_t_5numpy_float64_t __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h) {
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_j;
int __pyx_v_k;
int __pyx_v_jj;
int __pyx_v_kk;
int __pyx_v_j0;
int __pyx_v_k0;
int __pyx_v_jj0;
int __pyx_v_jj1;
int __pyx_v_kk0;
int __pyx_v_kk1;
int __pyx_v_dn_y;
int __pyx_v_dn_x;
double __pyx_v_y;
double __pyx_v_x;
double __pyx_v_r;
/* … */
/* function exit code */
}
static void __pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_KR_frame_2d(__Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_w0, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float64_t __pyx_v_di, __pyx_t_5numpy_float64_t __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h) {
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_j;
int __pyx_v_k;
int __pyx_v_jj;
int __pyx_v_kk;
int __pyx_v_j0;
int __pyx_v_k0;
int __pyx_v_jj0;
int __pyx_v_jj1;
int __pyx_v_kk0;
int __pyx_v_kk1;
int __pyx_v_dn_y;
int __pyx_v_dn_x;
double __pyx_v_y;
double __pyx_v_x;
double __pyx_v_r;
/* … */
/* function exit code */
}
static void __pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_KR_frame_2d(__Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_w0, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float32_t __pyx_v_di, __pyx_t_5numpy_float32_t __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h) {
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_j;
int __pyx_v_k;
int __pyx_v_jj;
int __pyx_v_kk;
int __pyx_v_j0;
int __pyx_v_k0;
int __pyx_v_jj0;
int __pyx_v_jj1;
int __pyx_v_kk0;
int __pyx_v_kk1;
int __pyx_v_dn_y;
int __pyx_v_dn_x;
double __pyx_v_y;
double __pyx_v_x;
double __pyx_v_r;
/* … */
/* function exit code */
}
static void __pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_KR_frame_2d(__Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_w0, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float32_t __pyx_v_di, __pyx_t_5numpy_float32_t __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h) {
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_j;
int __pyx_v_k;
int __pyx_v_jj;
int __pyx_v_kk;
int __pyx_v_j0;
int __pyx_v_k0;
int __pyx_v_jj0;
int __pyx_v_jj1;
int __pyx_v_kk0;
int __pyx_v_kk1;
int __pyx_v_dn_y;
int __pyx_v_dn_x;
double __pyx_v_y;
double __pyx_v_x;
double __pyx_v_r;
/* … */
/* function exit code */
}
0114: float_t[:, ::1] W, float_t[:, :, ::1] u, float_t di, float_t dj,
0115: double ds_y, double ds_x, double h) nogil:
+0116: cdef int Y = I_n.shape[0], X = I_n.shape[1], Y0 = I0.shape[0], X0 = I0.shape[1]
__pyx_v_Y = (__pyx_v_I_n.shape[0]); __pyx_v_X = (__pyx_v_I_n.shape[1]); __pyx_v_Y0 = (__pyx_v_I0.shape[0]); __pyx_v_X0 = (__pyx_v_I0.shape[1]); /* … */ __pyx_v_Y = (__pyx_v_I_n.shape[0]); __pyx_v_X = (__pyx_v_I_n.shape[1]); __pyx_v_Y0 = (__pyx_v_I0.shape[0]); __pyx_v_X0 = (__pyx_v_I0.shape[1]); /* … */ __pyx_v_Y = (__pyx_v_I_n.shape[0]); __pyx_v_X = (__pyx_v_I_n.shape[1]); __pyx_v_Y0 = (__pyx_v_I0.shape[0]); __pyx_v_X0 = (__pyx_v_I0.shape[1]); /* … */ __pyx_v_Y = (__pyx_v_I_n.shape[0]); __pyx_v_X = (__pyx_v_I_n.shape[1]); __pyx_v_Y0 = (__pyx_v_I0.shape[0]); __pyx_v_X0 = (__pyx_v_I0.shape[1]);
0117: cdef int j, k, jj, kk, j0, k0, jj0, jj1, kk0, kk1
+0118: cdef int dn_y = <int>ceil((4.0 * h) / ds_y), dn_x = <int>ceil((4.0 * h) / ds_x)
__pyx_v_dn_y = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_y))); __pyx_v_dn_x = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_x))); /* … */ __pyx_v_dn_y = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_y))); __pyx_v_dn_x = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_x))); /* … */ __pyx_v_dn_y = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_y))); __pyx_v_dn_x = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_x))); /* … */ __pyx_v_dn_y = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_y))); __pyx_v_dn_x = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_x)));
0119: cdef double y, x, r
0120:
+0121: for j in range(Y):
__pyx_t_1 = __pyx_v_Y;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_j = __pyx_t_3;
/* … */
__pyx_t_1 = __pyx_v_Y;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_j = __pyx_t_3;
/* … */
__pyx_t_1 = __pyx_v_Y;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_j = __pyx_t_3;
/* … */
__pyx_t_1 = __pyx_v_Y;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_j = __pyx_t_3;
+0122: for k in range(X):
__pyx_t_4 = __pyx_v_X;
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_k = __pyx_t_6;
/* … */
__pyx_t_4 = __pyx_v_X;
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_k = __pyx_t_6;
/* … */
__pyx_t_4 = __pyx_v_X;
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_k = __pyx_t_6;
/* … */
__pyx_t_4 = __pyx_v_X;
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_k = __pyx_t_6;
+0123: y = u[0, j, k] - di
__pyx_t_7 = 0;
__pyx_t_8 = __pyx_v_j;
__pyx_t_9 = __pyx_v_k;
__pyx_v_y = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_7 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_9)) ))) - __pyx_v_di);
/* … */
__pyx_t_7 = 0;
__pyx_t_8 = __pyx_v_j;
__pyx_t_9 = __pyx_v_k;
__pyx_v_y = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_7 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_9)) ))) - __pyx_v_di);
/* … */
__pyx_t_7 = 0;
__pyx_t_8 = __pyx_v_j;
__pyx_t_9 = __pyx_v_k;
__pyx_v_y = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_7 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_9)) ))) - __pyx_v_di);
/* … */
__pyx_t_7 = 0;
__pyx_t_8 = __pyx_v_j;
__pyx_t_9 = __pyx_v_k;
__pyx_v_y = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_7 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_9)) ))) - __pyx_v_di);
+0124: x = u[1, j, k] - dj
__pyx_t_9 = 1;
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_v_x = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_9 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) ))) - __pyx_v_dj);
/* … */
__pyx_t_9 = 1;
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_v_x = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_9 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) ))) - __pyx_v_dj);
/* … */
__pyx_t_9 = 1;
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_v_x = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_9 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) ))) - __pyx_v_dj);
/* … */
__pyx_t_9 = 1;
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_v_x = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_9 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) ))) - __pyx_v_dj);
+0125: j0 = <int>(y / ds_y) + 1
__pyx_v_j0 = (((int)(__pyx_v_y / __pyx_v_ds_y)) + 1);
/* … */
__pyx_v_j0 = (((int)(__pyx_v_y / __pyx_v_ds_y)) + 1);
/* … */
__pyx_v_j0 = (((int)(__pyx_v_y / __pyx_v_ds_y)) + 1);
/* … */
__pyx_v_j0 = (((int)(__pyx_v_y / __pyx_v_ds_y)) + 1);
+0126: k0 = <int>(x / ds_x) + 1
__pyx_v_k0 = (((int)(__pyx_v_x / __pyx_v_ds_x)) + 1);
/* … */
__pyx_v_k0 = (((int)(__pyx_v_x / __pyx_v_ds_x)) + 1);
/* … */
__pyx_v_k0 = (((int)(__pyx_v_x / __pyx_v_ds_x)) + 1);
/* … */
__pyx_v_k0 = (((int)(__pyx_v_x / __pyx_v_ds_x)) + 1);
0127:
+0128: jj0 = j0 - dn_y if j0 - dn_y > 0 else 0
if ((((__pyx_v_j0 - __pyx_v_dn_y) > 0) != 0)) {
__pyx_t_10 = (__pyx_v_j0 - __pyx_v_dn_y);
} else {
__pyx_t_10 = 0;
}
__pyx_v_jj0 = __pyx_t_10;
/* … */
if ((((__pyx_v_j0 - __pyx_v_dn_y) > 0) != 0)) {
__pyx_t_10 = (__pyx_v_j0 - __pyx_v_dn_y);
} else {
__pyx_t_10 = 0;
}
__pyx_v_jj0 = __pyx_t_10;
/* … */
if ((((__pyx_v_j0 - __pyx_v_dn_y) > 0) != 0)) {
__pyx_t_10 = (__pyx_v_j0 - __pyx_v_dn_y);
} else {
__pyx_t_10 = 0;
}
__pyx_v_jj0 = __pyx_t_10;
/* … */
if ((((__pyx_v_j0 - __pyx_v_dn_y) > 0) != 0)) {
__pyx_t_10 = (__pyx_v_j0 - __pyx_v_dn_y);
} else {
__pyx_t_10 = 0;
}
__pyx_v_jj0 = __pyx_t_10;
+0129: jj1 = j0 + dn_y if j0 + dn_y < Y0 else Y0
if ((((__pyx_v_j0 + __pyx_v_dn_y) < __pyx_v_Y0) != 0)) {
__pyx_t_10 = (__pyx_v_j0 + __pyx_v_dn_y);
} else {
__pyx_t_10 = __pyx_v_Y0;
}
__pyx_v_jj1 = __pyx_t_10;
/* … */
if ((((__pyx_v_j0 + __pyx_v_dn_y) < __pyx_v_Y0) != 0)) {
__pyx_t_10 = (__pyx_v_j0 + __pyx_v_dn_y);
} else {
__pyx_t_10 = __pyx_v_Y0;
}
__pyx_v_jj1 = __pyx_t_10;
/* … */
if ((((__pyx_v_j0 + __pyx_v_dn_y) < __pyx_v_Y0) != 0)) {
__pyx_t_10 = (__pyx_v_j0 + __pyx_v_dn_y);
} else {
__pyx_t_10 = __pyx_v_Y0;
}
__pyx_v_jj1 = __pyx_t_10;
/* … */
if ((((__pyx_v_j0 + __pyx_v_dn_y) < __pyx_v_Y0) != 0)) {
__pyx_t_10 = (__pyx_v_j0 + __pyx_v_dn_y);
} else {
__pyx_t_10 = __pyx_v_Y0;
}
__pyx_v_jj1 = __pyx_t_10;
+0130: kk0 = k0 - dn_x if k0 - dn_x > 0 else 0
if ((((__pyx_v_k0 - __pyx_v_dn_x) > 0) != 0)) {
__pyx_t_10 = (__pyx_v_k0 - __pyx_v_dn_x);
} else {
__pyx_t_10 = 0;
}
__pyx_v_kk0 = __pyx_t_10;
/* … */
if ((((__pyx_v_k0 - __pyx_v_dn_x) > 0) != 0)) {
__pyx_t_10 = (__pyx_v_k0 - __pyx_v_dn_x);
} else {
__pyx_t_10 = 0;
}
__pyx_v_kk0 = __pyx_t_10;
/* … */
if ((((__pyx_v_k0 - __pyx_v_dn_x) > 0) != 0)) {
__pyx_t_10 = (__pyx_v_k0 - __pyx_v_dn_x);
} else {
__pyx_t_10 = 0;
}
__pyx_v_kk0 = __pyx_t_10;
/* … */
if ((((__pyx_v_k0 - __pyx_v_dn_x) > 0) != 0)) {
__pyx_t_10 = (__pyx_v_k0 - __pyx_v_dn_x);
} else {
__pyx_t_10 = 0;
}
__pyx_v_kk0 = __pyx_t_10;
+0131: kk1 = k0 + dn_x if k0 + dn_x < X0 else X0
if ((((__pyx_v_k0 + __pyx_v_dn_x) < __pyx_v_X0) != 0)) {
__pyx_t_10 = (__pyx_v_k0 + __pyx_v_dn_x);
} else {
__pyx_t_10 = __pyx_v_X0;
}
__pyx_v_kk1 = __pyx_t_10;
/* … */
if ((((__pyx_v_k0 + __pyx_v_dn_x) < __pyx_v_X0) != 0)) {
__pyx_t_10 = (__pyx_v_k0 + __pyx_v_dn_x);
} else {
__pyx_t_10 = __pyx_v_X0;
}
__pyx_v_kk1 = __pyx_t_10;
/* … */
if ((((__pyx_v_k0 + __pyx_v_dn_x) < __pyx_v_X0) != 0)) {
__pyx_t_10 = (__pyx_v_k0 + __pyx_v_dn_x);
} else {
__pyx_t_10 = __pyx_v_X0;
}
__pyx_v_kk1 = __pyx_t_10;
/* … */
if ((((__pyx_v_k0 + __pyx_v_dn_x) < __pyx_v_X0) != 0)) {
__pyx_t_10 = (__pyx_v_k0 + __pyx_v_dn_x);
} else {
__pyx_t_10 = __pyx_v_X0;
}
__pyx_v_kk1 = __pyx_t_10;
0132:
+0133: for jj in range(jj0, jj1):
__pyx_t_10 = __pyx_v_jj1;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = __pyx_v_jj0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_jj = __pyx_t_12;
/* … */
__pyx_t_10 = __pyx_v_jj1;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = __pyx_v_jj0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_jj = __pyx_t_12;
/* … */
__pyx_t_10 = __pyx_v_jj1;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = __pyx_v_jj0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_jj = __pyx_t_12;
/* … */
__pyx_t_10 = __pyx_v_jj1;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = __pyx_v_jj0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_jj = __pyx_t_12;
+0134: for kk in range(kk0, kk1):
__pyx_t_13 = __pyx_v_kk1;
__pyx_t_14 = __pyx_t_13;
for (__pyx_t_15 = __pyx_v_kk0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
__pyx_v_kk = __pyx_t_15;
/* … */
__pyx_t_13 = __pyx_v_kk1;
__pyx_t_14 = __pyx_t_13;
for (__pyx_t_15 = __pyx_v_kk0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
__pyx_v_kk = __pyx_t_15;
/* … */
__pyx_t_13 = __pyx_v_kk1;
__pyx_t_14 = __pyx_t_13;
for (__pyx_t_15 = __pyx_v_kk0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
__pyx_v_kk = __pyx_t_15;
/* … */
__pyx_t_13 = __pyx_v_kk1;
__pyx_t_14 = __pyx_t_13;
for (__pyx_t_15 = __pyx_v_kk0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
__pyx_v_kk = __pyx_t_15;
+0135: r = rbf((ds_y * jj - y) * (ds_y * jj - y) + (ds_x * kk - x) * (ds_x * kk - x), h)
__pyx_v_r = __pyx_f_6pyrost_3bin_6pyrost_rbf(((((__pyx_v_ds_y * __pyx_v_jj) - __pyx_v_y) * ((__pyx_v_ds_y * __pyx_v_jj) - __pyx_v_y)) + (((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x) * ((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x))), __pyx_v_h);
/* … */
__pyx_v_r = __pyx_f_6pyrost_3bin_6pyrost_rbf(((((__pyx_v_ds_y * __pyx_v_jj) - __pyx_v_y) * ((__pyx_v_ds_y * __pyx_v_jj) - __pyx_v_y)) + (((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x) * ((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x))), __pyx_v_h);
/* … */
__pyx_v_r = __pyx_f_6pyrost_3bin_6pyrost_rbf(((((__pyx_v_ds_y * __pyx_v_jj) - __pyx_v_y) * ((__pyx_v_ds_y * __pyx_v_jj) - __pyx_v_y)) + (((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x) * ((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x))), __pyx_v_h);
/* … */
__pyx_v_r = __pyx_f_6pyrost_3bin_6pyrost_rbf(((((__pyx_v_ds_y * __pyx_v_jj) - __pyx_v_y) * ((__pyx_v_ds_y * __pyx_v_jj) - __pyx_v_y)) + (((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x) * ((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x))), __pyx_v_h);
+0136: I0[jj, kk] += I_n[j, k] * W[j, k] * r
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
__pyx_t_9 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = __pyx_v_jj;
__pyx_t_18 = __pyx_v_kk;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_17 * __pyx_v_I0.strides[0]) )) + __pyx_t_18)) )) += (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_7 * __pyx_v_I_n.strides[0]) )) + __pyx_t_8)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_9 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) * __pyx_v_r);
/* … */
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
__pyx_t_9 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = __pyx_v_jj;
__pyx_t_18 = __pyx_v_kk;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_17 * __pyx_v_I0.strides[0]) )) + __pyx_t_18)) )) += (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_7 * __pyx_v_I_n.strides[0]) )) + __pyx_t_8)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_9 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) * __pyx_v_r);
/* … */
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
__pyx_t_9 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = __pyx_v_jj;
__pyx_t_18 = __pyx_v_kk;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_17 * __pyx_v_I0.strides[0]) )) + __pyx_t_18)) )) += (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_7 * __pyx_v_I_n.strides[0]) )) + __pyx_t_8)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_9 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) * __pyx_v_r);
/* … */
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
__pyx_t_9 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = __pyx_v_jj;
__pyx_t_18 = __pyx_v_kk;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_17 * __pyx_v_I0.strides[0]) )) + __pyx_t_18)) )) += (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_7 * __pyx_v_I_n.strides[0]) )) + __pyx_t_8)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_9 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) * __pyx_v_r);
+0137: w0[jj, kk] += W[j, k] * W[j, k] * r
__pyx_t_16 = __pyx_v_j;
__pyx_t_9 = __pyx_v_k;
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_t_18 = __pyx_v_jj;
__pyx_t_17 = __pyx_v_kk;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_w0.data + __pyx_t_18 * __pyx_v_w0.strides[0]) )) + __pyx_t_17)) )) += (((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_16 * __pyx_v_W.strides[0]) )) + __pyx_t_9)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_8 * __pyx_v_W.strides[0]) )) + __pyx_t_7)) )))) * __pyx_v_r);
}
}
}
}
/* … */
__pyx_t_16 = __pyx_v_j;
__pyx_t_9 = __pyx_v_k;
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_t_18 = __pyx_v_jj;
__pyx_t_17 = __pyx_v_kk;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_w0.data + __pyx_t_18 * __pyx_v_w0.strides[0]) )) + __pyx_t_17)) )) += (((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_16 * __pyx_v_W.strides[0]) )) + __pyx_t_9)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_8 * __pyx_v_W.strides[0]) )) + __pyx_t_7)) )))) * __pyx_v_r);
}
}
}
}
/* … */
__pyx_t_16 = __pyx_v_j;
__pyx_t_9 = __pyx_v_k;
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_t_18 = __pyx_v_jj;
__pyx_t_17 = __pyx_v_kk;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_w0.data + __pyx_t_18 * __pyx_v_w0.strides[0]) )) + __pyx_t_17)) )) += (((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_16 * __pyx_v_W.strides[0]) )) + __pyx_t_9)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_8 * __pyx_v_W.strides[0]) )) + __pyx_t_7)) )))) * __pyx_v_r);
}
}
}
}
/* … */
__pyx_t_16 = __pyx_v_j;
__pyx_t_9 = __pyx_v_k;
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_t_18 = __pyx_v_jj;
__pyx_t_17 = __pyx_v_kk;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_w0.data + __pyx_t_18 * __pyx_v_w0.strides[0]) )) + __pyx_t_17)) )) += (((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_16 * __pyx_v_W.strides[0]) )) + __pyx_t_9)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_8 * __pyx_v_W.strides[0]) )) + __pyx_t_7)) )))) * __pyx_v_r);
}
}
}
}
0138:
+0139: def KR_reference(uint_t[:, :, ::1] I_n not None, float_t[:, ::1] W not None, float_t[:, :, ::1] u not None,
/* Python wrapper */
static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_1KR_reference(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6pyrost_3bin_6pyrost_KR_reference[] = "Generate an unabberated reference image of the sample based on the pixel\n mapping `u` and the measured data `I_n` using the Kernel regression.\n\n Args:\n I_n (numpy.ndarray) : Measured intensity frames.\n W (numpy.ndarray) : Measured frames' whitefield.\n u (numpy.ndarray) : The discrete geometrical mapping of the detector\n plane to the reference image.\n di (numpy.ndarray) : Initial sample's translations along the vertical\n detector axis in pixels.\n dj (numpy.ndarray) : Initial sample's translations along the horizontal\n detector axis in pixels.\n ds_y (float) : Sampling interval of reference image in pixels along the\n vertical axis.\n ds_x (float) : Sampling interval of reference image in pixels along the\n horizontal axis.\n h (float) : Gaussian kernel bandwidth in pixels.\n return_nm0 (bool) : If True, also returns the lower bounds (`n0`, `m0`)\n of the reference image in pixels.\n num_threads (int) : Number of threads.\n\n Returns:\n Tuple[numpy.ndarray, int, int] : A tuple of three elements ('I0', 'n0',\n 'm0'). The elements are the following:\n\n * 'I0' : Reference image array.\n * 'n0' : The lower bounds of the vertical detector axis of the reference\n image at the reference frame in pixels. Only provided if `return_nm0` is\n True.\n * 'm0' : The lower bounds of the horizontal detector axis of the reference\n image at the reference frame in pixels. Only provided if `return_nm0` is\n True.\n\n Notes:\n The pixel mapping `u` maps the intensity measurements from the detector\n plane to the reference plane as follows:\n\n .. math::\n i_{ref}[n, i, j] = u[0, i, j] + di[n], \\; j_{ref}[n, i, j] = u[1, i, j] + dj[n]\n\n The reference image profile :math:`I_{ref}[ii, jj]` is obtained with the\n kern""el regression extimator as follows:\n\n .. math::\n\n I_{ref}[i, j] = \\frac{\\sum_{n, i^{\\prime}, j^{\\prime}} K[i - i_{ref}[n,\n i^{\\prime}, j^{\\prime}], j - j_{ref}[n, i^{\\prime}, j^{\\prime}], h]\n \\; W[i^{\\prime}, j^{\\prime}] I[n, i^{\\prime}, j^{\\prime}]}\n {\\sum_{n, i^{\\prime}, j^{\\prime}} K[i - i_{ref}[n, i^{\\prime}, j^{\\prime}], \n j - j_{ref}[n, i^{\\prime}, j^{\\prime}], h] \\; W^2[i^{\\prime}, j^{\\prime}]}\n\n where :math:`K[i, j, h] = \\frac{1}{\\sqrt{2 \\pi}} \\exp(-\\frac{i^2 + j^2}{h})`\n is the Gaussian kernel.\n ";
static PyMethodDef __pyx_mdef_6pyrost_3bin_6pyrost_1KR_reference = {"KR_reference", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pyrost_3bin_6pyrost_1KR_reference, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_KR_reference};
static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_1KR_reference(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_signatures = 0;
PyObject *__pyx_v_args = 0;
PyObject *__pyx_v_kwargs = 0;
CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
PyObject* values[4] = {0,0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 139, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 139, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
}
__pyx_v_signatures = values[0];
__pyx_v_args = values[1];
__pyx_v_kwargs = values[2];
__pyx_v_defaults = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 139, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_KR_reference(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_KR_reference(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
PyObject *__pyx_v_dest_sig = NULL;
Py_ssize_t __pyx_v_i;
PyTypeObject *__pyx_v_ndarray = 0;
__Pyx_memviewslice __pyx_v_memslice;
Py_ssize_t __pyx_v_itemsize;
int __pyx_v_dtype_signed;
char __pyx_v_kind;
int __pyx_v____pyx_uint64_t_is_signed;
int __pyx_v____pyx_uint32_t_is_signed;
PyObject *__pyx_v_arg = NULL;
PyObject *__pyx_v_dtype = NULL;
PyObject *__pyx_v_arg_base = NULL;
PyObject *__pyx_v_candidates = NULL;
PyObject *__pyx_v_sig = NULL;
int __pyx_v_match_found;
PyObject *__pyx_v_src_sig = NULL;
PyObject *__pyx_v_dst_type = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("KR_reference", 0);
__Pyx_INCREF(__pyx_v_kwargs);
__pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{ Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
}
}
__pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_3 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 139, __pyx_L1_error)
__pyx_t_3 = ((!__pyx_t_4) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L4_bool_binop_done:;
if (__pyx_t_2) {
__Pyx_INCREF(Py_None);
__Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
}
__pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_v_itemsize = -1L;
__pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
__pyx_v____pyx_uint32_t_is_signed = (!((((__pyx_t_5numpy_uint32_t)-1L) > 0) != 0));
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 139, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 139, __pyx_L1_error)
__pyx_t_2 = ((0 < __pyx_t_5) != 0);
if (__pyx_t_2) {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 139, __pyx_L1_error)
}
__pyx_t_1 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 0);
__Pyx_INCREF(__pyx_t_1);
__pyx_v_arg = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L6;
}
__pyx_t_3 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L7_bool_binop_done;
}
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 139, __pyx_L1_error)
}
__pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_I_n, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 139, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_4 != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L7_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 139, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_I_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_arg = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L6;
}
/*else*/ {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 139, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 139, __pyx_L1_error)
__pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_INCREF(__pyx_int_8);
__Pyx_GIVEREF(__pyx_int_8);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_8);
__Pyx_INCREF(__pyx_n_s_s);
__Pyx_GIVEREF(__pyx_n_s_s);
PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_Raise(__pyx_t_6, 0, 0, 0);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__PYX_ERR(0, 139, __pyx_L1_error)
}
__pyx_L6:;
while (1) {
__pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_dtype = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L12;
}
__pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_arg_base = __pyx_t_6;
__pyx_t_6 = 0;
__pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_dtype = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L13;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__pyx_v_dtype = Py_None;
}
__pyx_L13:;
goto __pyx_L12;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__pyx_v_dtype = Py_None;
}
__pyx_L12:;
__pyx_v_itemsize = -1L;
__pyx_t_2 = (__pyx_v_dtype != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_itemsize = __pyx_t_5;
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_kind = __pyx_t_7;
__pyx_v_dtype_signed = (__pyx_v_kind == 'i');
switch (__pyx_v_kind) {
case 'i':
case 'u':
__pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L16_bool_binop_done;
}
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L16_bool_binop_done;
}
__pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L16_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 139, __pyx_L1_error)
goto __pyx_L10_break;
}
__pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint32_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L20_bool_binop_done;
}
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L20_bool_binop_done;
}
__pyx_t_2 = ((!((__pyx_v____pyx_uint32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L20_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 139, __pyx_L1_error)
goto __pyx_L10_break;
}
break;
case 'f':
break;
case 'c':
break;
case 'O':
break;
default: break;
}
}
}
__pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L24_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L24_bool_binop_done:;
if (__pyx_t_3) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_3 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_3) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 139, __pyx_L1_error)
goto __pyx_L10_break;
}
/*else*/ {
PyErr_Clear();
}
}
__pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L28_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint32_t))) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L28_bool_binop_done:;
if (__pyx_t_3) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_3 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_3) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 139, __pyx_L1_error)
goto __pyx_L10_break;
}
/*else*/ {
PyErr_Clear();
}
}
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 139, __pyx_L1_error)
goto __pyx_L10_break;
}
__pyx_L10_break:;
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 139, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 139, __pyx_L1_error)
__pyx_t_3 = ((1 < __pyx_t_5) != 0);
if (__pyx_t_3) {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 139, __pyx_L1_error)
}
__pyx_t_6 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 1);
__Pyx_INCREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
__pyx_t_6 = 0;
goto __pyx_L31;
}
__pyx_t_2 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_2 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_3 = __pyx_t_4;
goto __pyx_L32_bool_binop_done;
}
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 139, __pyx_L1_error)
}
__pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_W, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 139, __pyx_L1_error)
__pyx_t_2 = (__pyx_t_4 != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L32_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 139, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_W); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
__pyx_t_6 = 0;
goto __pyx_L31;
}
/*else*/ {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 139, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 139, __pyx_L1_error)
__pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_int_8);
__Pyx_GIVEREF(__pyx_int_8);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_8);
__Pyx_INCREF(__pyx_n_s_s);
__Pyx_GIVEREF(__pyx_n_s_s);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 139, __pyx_L1_error)
}
__pyx_L31:;
while (1) {
__pyx_t_3 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
__pyx_t_1 = 0;
goto __pyx_L37;
}
__pyx_t_3 = __pyx_memoryview_check(__pyx_v_arg);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_arg_base, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
__pyx_t_1 = 0;
goto __pyx_L38;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
}
__pyx_L38:;
goto __pyx_L37;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
}
__pyx_L37:;
__pyx_v_itemsize = -1L;
__pyx_t_3 = (__pyx_v_dtype != Py_None);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_itemsize = __pyx_t_5;
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_1); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_kind = __pyx_t_7;
__pyx_v_dtype_signed = (__pyx_v_kind == 'i');
switch (__pyx_v_kind) {
case 'i':
case 'u':
break;
case 'f':
__pyx_t_3 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L41_bool_binop_done;
}
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 2) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L41_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 139, __pyx_L1_error)
goto __pyx_L35_break;
}
__pyx_t_3 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L44_bool_binop_done;
}
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 2) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L44_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 139, __pyx_L1_error)
goto __pyx_L35_break;
}
break;
case 'c':
break;
case 'O':
break;
default: break;
}
}
}
__pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L47_bool_binop_done;
}
__pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L47_bool_binop_done:;
if (__pyx_t_2) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_2 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_2) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 139, __pyx_L1_error)
goto __pyx_L35_break;
}
/*else*/ {
PyErr_Clear();
}
}
__pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L51_bool_binop_done;
}
__pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L51_bool_binop_done:;
if (__pyx_t_2) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_2 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_2) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 139, __pyx_L1_error)
goto __pyx_L35_break;
}
/*else*/ {
PyErr_Clear();
}
}
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 139, __pyx_L1_error)
goto __pyx_L35_break;
}
__pyx_L35_break:;
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_candidates = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_5 = 0;
if (unlikely(__pyx_v_signatures == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 139, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_9, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_10);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_v_match_found = 0;
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_14 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
__pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
if (likely(__pyx_t_14)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
__Pyx_INCREF(__pyx_t_14);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_13, function);
}
}
__pyx_t_12 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2);
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
__pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
if (likely(__pyx_t_12)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
__Pyx_INCREF(__pyx_t_12);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_13, function);
}
}
__pyx_t_6 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__3);
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_15 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 139, __pyx_L1_error)
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_i = __pyx_t_17;
__pyx_t_6 = PyList_GET_ITEM(__pyx_v_dest_sig, __pyx_v_i);
__Pyx_INCREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_2 = (__pyx_v_dst_type != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_13 = PyObject_RichCompare(__pyx_t_6, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
if (__pyx_t_3) {
__pyx_v_match_found = 1;
goto __pyx_L59;
}
/*else*/ {
__pyx_v_match_found = 0;
goto __pyx_L57_break;
}
__pyx_L59:;
}
}
__pyx_L57_break:;
__pyx_t_3 = (__pyx_v_match_found != 0);
if (__pyx_t_3) {
__pyx_t_18 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 139, __pyx_L1_error)
}
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
__pyx_t_2 = ((!__pyx_t_3) != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 139, __pyx_L1_error)
}
__pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 139, __pyx_L1_error)
__pyx_t_2 = ((__pyx_t_9 > 1) != 0);
if (__pyx_t_2) {
/* … */
__pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_No_matching_signature_found); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__4);
__Pyx_GIVEREF(__pyx_tuple__4);
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 139, __pyx_L1_error)
}
/*else*/ {
__Pyx_XDECREF(__pyx_r);
if (unlikely(__pyx_v_signatures == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 139, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), PyList_GET_ITEM(__pyx_v_candidates, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_AddTraceback("pyrost.bin.pyrost.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_dest_sig);
__Pyx_XDECREF(__pyx_v_ndarray);
__Pyx_XDECREF(__pyx_v_arg);
__Pyx_XDECREF(__pyx_v_dtype);
__Pyx_XDECREF(__pyx_v_arg_base);
__Pyx_XDECREF(__pyx_v_candidates);
__Pyx_XDECREF(__pyx_v_sig);
__Pyx_XDECREF(__pyx_v_src_sig);
__Pyx_XDECREF(__pyx_v_dst_type);
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_136__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults4, __pyx_self)->__pyx_arg_return_nm0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults4, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
__pyx_t_1 = 0;
__pyx_t_2 = 0;
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None);
__pyx_t_3 = 0;
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_23KR_reference(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_6pyrost_3bin_6pyrost_23KR_reference = {"__pyx_fuse_0_0KR_reference", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_23KR_reference, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_KR_reference};
static PyObject *__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_23KR_reference(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_h;
int __pyx_v_return_nm0;
unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("KR_reference (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_h,&__pyx_n_s_return_nm0,&__pyx_n_s_num_threads,0};
PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
__pyx_defaults4 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults4, __pyx_self);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 1); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 2); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 3); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 4); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 5); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 6); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 7); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_return_nm0);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[9] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "KR_reference") < 0)) __PYX_ERR(0, 139, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 139, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 139, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 139, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 140, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 140, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 140, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 140, __pyx_L3_error)
__pyx_v_h = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_h == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 140, __pyx_L3_error)
if (values[8]) {
__pyx_v_return_nm0 = __Pyx_PyObject_IsTrue(values[8]); if (unlikely((__pyx_v_return_nm0 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L3_error)
} else {
__pyx_v_return_nm0 = __pyx_dynamic_args->__pyx_arg_return_nm0;
}
if (values[9]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[9]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 139, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.KR_reference", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 139, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 139, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 139, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 140, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 140, __pyx_L1_error)
}
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_22KR_reference(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h, __pyx_v_return_nm0, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_22KR_reference(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h, int __pyx_v_return_nm0, unsigned int __pyx_v_num_threads) {
int __pyx_v_type_num;
int __pyx_v_N;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_i;
int __pyx_v_j;
int __pyx_v_t;
int __pyx_v_k;
__pyx_t_5numpy_float64_t __pyx_v_n0;
__pyx_t_5numpy_float64_t __pyx_v_m0;
int __pyx_v_Y0;
int __pyx_v_X0;
npy_intp *__pyx_v_shape;
__Pyx_memviewslice __pyx_v_I0_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W0_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_v_I0 = 0;
__Pyx_memviewslice __pyx_v__I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__pyx_t_5numpy_float64_t __pyx_v_I0_sum;
__pyx_t_5numpy_float64_t __pyx_v_W0_sum;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_0_0KR_reference", 0);
__pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_Function_call_with_ambiguous_arg); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__5);
__Pyx_GIVEREF(__pyx_tuple__5);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_14, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_15, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 1);
__Pyx_XDECREF(__pyx_t_24);
__Pyx_AddTraceback("pyrost.bin.pyrost.KR_reference", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XDEC_MEMVIEW(&__pyx_v_I0_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W0_buf, 1);
__Pyx_XDECREF((PyObject *)__pyx_v_I0);
__PYX_XDEC_MEMVIEW(&__pyx_v__I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_138__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults5, __pyx_self)->__pyx_arg_return_nm0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults5, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
__pyx_t_1 = 0;
__pyx_t_2 = 0;
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None);
__pyx_t_3 = 0;
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_25KR_reference(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_6pyrost_3bin_6pyrost_25KR_reference = {"__pyx_fuse_0_1KR_reference", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_25KR_reference, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_KR_reference};
static PyObject *__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_25KR_reference(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_h;
int __pyx_v_return_nm0;
unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("KR_reference (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_h,&__pyx_n_s_return_nm0,&__pyx_n_s_num_threads,0};
PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
__pyx_defaults5 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults5, __pyx_self);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 1); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 2); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 3); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 4); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 5); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 6); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 7); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_return_nm0);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[9] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "KR_reference") < 0)) __PYX_ERR(0, 139, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 139, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 139, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 139, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 140, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 140, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 140, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 140, __pyx_L3_error)
__pyx_v_h = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_h == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 140, __pyx_L3_error)
if (values[8]) {
__pyx_v_return_nm0 = __Pyx_PyObject_IsTrue(values[8]); if (unlikely((__pyx_v_return_nm0 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L3_error)
} else {
__pyx_v_return_nm0 = __pyx_dynamic_args->__pyx_arg_return_nm0;
}
if (values[9]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[9]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 139, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.KR_reference", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 139, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 139, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 139, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 140, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 140, __pyx_L1_error)
}
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_24KR_reference(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h, __pyx_v_return_nm0, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_24KR_reference(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h, int __pyx_v_return_nm0, unsigned int __pyx_v_num_threads) {
int __pyx_v_type_num;
int __pyx_v_N;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_i;
int __pyx_v_j;
int __pyx_v_t;
int __pyx_v_k;
__pyx_t_5numpy_float32_t __pyx_v_n0;
__pyx_t_5numpy_float32_t __pyx_v_m0;
int __pyx_v_Y0;
int __pyx_v_X0;
npy_intp *__pyx_v_shape;
__Pyx_memviewslice __pyx_v_I0_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W0_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_v_I0 = 0;
__Pyx_memviewslice __pyx_v__I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__pyx_t_5numpy_float32_t __pyx_v_I0_sum;
__pyx_t_5numpy_float32_t __pyx_v_W0_sum;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_0_1KR_reference", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_14, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_15, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 1);
__Pyx_XDECREF(__pyx_t_24);
__Pyx_AddTraceback("pyrost.bin.pyrost.KR_reference", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XDEC_MEMVIEW(&__pyx_v_I0_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W0_buf, 1);
__Pyx_XDECREF((PyObject *)__pyx_v_I0);
__PYX_XDEC_MEMVIEW(&__pyx_v__I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_140__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults6, __pyx_self)->__pyx_arg_return_nm0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults6, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
__pyx_t_1 = 0;
__pyx_t_2 = 0;
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None);
__pyx_t_3 = 0;
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_27KR_reference(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_6pyrost_3bin_6pyrost_27KR_reference = {"__pyx_fuse_1_0KR_reference", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_27KR_reference, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_KR_reference};
static PyObject *__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_27KR_reference(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_h;
int __pyx_v_return_nm0;
unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("KR_reference (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_h,&__pyx_n_s_return_nm0,&__pyx_n_s_num_threads,0};
PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
__pyx_defaults6 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults6, __pyx_self);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 1); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 2); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 3); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 4); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 5); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 6); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 7); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_return_nm0);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[9] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "KR_reference") < 0)) __PYX_ERR(0, 139, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 139, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 139, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 139, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 140, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 140, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 140, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 140, __pyx_L3_error)
__pyx_v_h = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_h == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 140, __pyx_L3_error)
if (values[8]) {
__pyx_v_return_nm0 = __Pyx_PyObject_IsTrue(values[8]); if (unlikely((__pyx_v_return_nm0 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L3_error)
} else {
__pyx_v_return_nm0 = __pyx_dynamic_args->__pyx_arg_return_nm0;
}
if (values[9]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[9]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 139, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.KR_reference", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 139, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 139, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 139, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 140, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 140, __pyx_L1_error)
}
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_26KR_reference(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h, __pyx_v_return_nm0, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_26KR_reference(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h, int __pyx_v_return_nm0, unsigned int __pyx_v_num_threads) {
int __pyx_v_type_num;
int __pyx_v_N;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_i;
int __pyx_v_j;
int __pyx_v_t;
int __pyx_v_k;
__pyx_t_5numpy_float64_t __pyx_v_n0;
__pyx_t_5numpy_float64_t __pyx_v_m0;
int __pyx_v_Y0;
int __pyx_v_X0;
npy_intp *__pyx_v_shape;
__Pyx_memviewslice __pyx_v_I0_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W0_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_v_I0 = 0;
__Pyx_memviewslice __pyx_v__I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__pyx_t_5numpy_float64_t __pyx_v_I0_sum;
__pyx_t_5numpy_float64_t __pyx_v_W0_sum;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_1_0KR_reference", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_14, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_15, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 1);
__Pyx_XDECREF(__pyx_t_24);
__Pyx_AddTraceback("pyrost.bin.pyrost.KR_reference", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XDEC_MEMVIEW(&__pyx_v_I0_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W0_buf, 1);
__Pyx_XDECREF((PyObject *)__pyx_v_I0);
__PYX_XDEC_MEMVIEW(&__pyx_v__I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_142__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults7, __pyx_self)->__pyx_arg_return_nm0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults7, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
__pyx_t_1 = 0;
__pyx_t_2 = 0;
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None);
__pyx_t_3 = 0;
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_29KR_reference(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_6pyrost_3bin_6pyrost_29KR_reference = {"__pyx_fuse_1_1KR_reference", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_29KR_reference, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_KR_reference};
static PyObject *__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_29KR_reference(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_h;
int __pyx_v_return_nm0;
unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("KR_reference (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_h,&__pyx_n_s_return_nm0,&__pyx_n_s_num_threads,0};
PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
__pyx_defaults7 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults7, __pyx_self);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 1); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 2); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 3); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 4); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 5); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 6); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, 7); __PYX_ERR(0, 139, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_return_nm0);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[9] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "KR_reference") < 0)) __PYX_ERR(0, 139, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 139, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 139, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 139, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 140, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 140, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 140, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 140, __pyx_L3_error)
__pyx_v_h = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_h == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 140, __pyx_L3_error)
if (values[8]) {
__pyx_v_return_nm0 = __Pyx_PyObject_IsTrue(values[8]); if (unlikely((__pyx_v_return_nm0 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L3_error)
} else {
__pyx_v_return_nm0 = __pyx_dynamic_args->__pyx_arg_return_nm0;
}
if (values[9]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[9]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("KR_reference", 0, 8, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 139, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.KR_reference", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 139, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 139, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 139, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 140, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 140, __pyx_L1_error)
}
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_28KR_reference(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h, __pyx_v_return_nm0, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_28KR_reference(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h, int __pyx_v_return_nm0, unsigned int __pyx_v_num_threads) {
int __pyx_v_type_num;
int __pyx_v_N;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_i;
int __pyx_v_j;
int __pyx_v_t;
int __pyx_v_k;
__pyx_t_5numpy_float32_t __pyx_v_n0;
__pyx_t_5numpy_float32_t __pyx_v_m0;
int __pyx_v_Y0;
int __pyx_v_X0;
npy_intp *__pyx_v_shape;
__Pyx_memviewslice __pyx_v_I0_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W0_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_v_I0 = 0;
__Pyx_memviewslice __pyx_v__I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__pyx_t_5numpy_float32_t __pyx_v_I0_sum;
__pyx_t_5numpy_float32_t __pyx_v_W0_sum;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_1_1KR_reference", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_14, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_15, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 1);
__Pyx_XDECREF(__pyx_t_24);
__Pyx_AddTraceback("pyrost.bin.pyrost.KR_reference", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XDEC_MEMVIEW(&__pyx_v_I0_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W0_buf, 1);
__Pyx_XDECREF((PyObject *)__pyx_v_I0);
__PYX_XDEC_MEMVIEW(&__pyx_v__I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
__pyx_t_2 = 0;
__pyx_t_1 = 0;
/* … */
__pyx_tuple__33 = PyTuple_Pack(29, __pyx_n_s_I_n, __pyx_n_s_W, __pyx_n_s_u, __pyx_n_s_di, __pyx_n_s_dj, __pyx_n_s_ds_y, __pyx_n_s_ds_x, __pyx_n_s_h, __pyx_n_s_return_nm0, __pyx_n_s_num_threads, __pyx_n_s_type_num, __pyx_n_s_N, __pyx_n_s_Y, __pyx_n_s_X, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_t, __pyx_n_s_k, __pyx_n_s_n0, __pyx_n_s_m0, __pyx_n_s_Y0, __pyx_n_s_X0, __pyx_n_s_shape, __pyx_n_s_I0_buf, __pyx_n_s_W0_buf, __pyx_n_s_I0, __pyx_n_s_I0_2, __pyx_n_s_I0_sum, __pyx_n_s_W0_sum); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__33);
__Pyx_GIVEREF(__pyx_tuple__33);
__pyx_t_1 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __pyx_FusedFunction_New(&__pyx_fuse_0_0__pyx_mdef_6pyrost_3bin_6pyrost_23KR_reference, 0, __pyx_n_s_KR_reference, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__34)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_2, sizeof(__pyx_defaults4), 0)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_CyFunction_Defaults(__pyx_defaults4, __pyx_t_2)->__pyx_arg_return_nm0 = 1;
__Pyx_CyFunction_Defaults(__pyx_defaults4, __pyx_t_2)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_2, __pyx_pf_6pyrost_3bin_6pyrost_136__defaults__);
if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint64_t_float64_t, __pyx_t_2) < 0) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __pyx_FusedFunction_New(&__pyx_fuse_0_1__pyx_mdef_6pyrost_3bin_6pyrost_25KR_reference, 0, __pyx_n_s_KR_reference, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__34)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_2, sizeof(__pyx_defaults5), 0)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_CyFunction_Defaults(__pyx_defaults5, __pyx_t_2)->__pyx_arg_return_nm0 = 1;
__Pyx_CyFunction_Defaults(__pyx_defaults5, __pyx_t_2)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_2, __pyx_pf_6pyrost_3bin_6pyrost_138__defaults__);
if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint64_t_float32_t, __pyx_t_2) < 0) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __pyx_FusedFunction_New(&__pyx_fuse_1_0__pyx_mdef_6pyrost_3bin_6pyrost_27KR_reference, 0, __pyx_n_s_KR_reference, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__34)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_2, sizeof(__pyx_defaults6), 0)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_CyFunction_Defaults(__pyx_defaults6, __pyx_t_2)->__pyx_arg_return_nm0 = 1;
__Pyx_CyFunction_Defaults(__pyx_defaults6, __pyx_t_2)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_2, __pyx_pf_6pyrost_3bin_6pyrost_140__defaults__);
if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint32_t_float64_t, __pyx_t_2) < 0) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __pyx_FusedFunction_New(&__pyx_fuse_1_1__pyx_mdef_6pyrost_3bin_6pyrost_29KR_reference, 0, __pyx_n_s_KR_reference, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__34)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_2, sizeof(__pyx_defaults7), 0)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_CyFunction_Defaults(__pyx_defaults7, __pyx_t_2)->__pyx_arg_return_nm0 = 1;
__Pyx_CyFunction_Defaults(__pyx_defaults7, __pyx_t_2)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_2, __pyx_pf_6pyrost_3bin_6pyrost_142__defaults__);
if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint32_t_float32_t, __pyx_t_2) < 0) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __pyx_FusedFunction_New(&__pyx_mdef_6pyrost_3bin_6pyrost_1KR_reference, 0, __pyx_n_s_KR_reference, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__34)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4);
((__pyx_FusedFunctionObject *) __pyx_t_2)->__signatures__ = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
if (PyDict_SetItem(__pyx_d, __pyx_n_s_KR_reference, __pyx_t_2) < 0) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_codeobj__34 = (PyObject*)__Pyx_PyCode_New(10, 0, 29, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__33, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pyrost_bin_pyrost_pyx, __pyx_n_s_KR_reference, 139, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__34)) __PYX_ERR(0, 139, __pyx_L1_error)
0140: float_t[::1] di not None, float_t[::1] dj not None, double ds_y, double ds_x, double h,
+0141: bint return_nm0=True, unsigned num_threads=1):
__pyx_t_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyInt_From_long(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
0142: r"""Generate an unabberated reference image of the sample based on the pixel
0143: mapping `u` and the measured data `I_n` using the Kernel regression.
0144:
0145: Args:
0146: I_n (numpy.ndarray) : Measured intensity frames.
0147: W (numpy.ndarray) : Measured frames' whitefield.
0148: u (numpy.ndarray) : The discrete geometrical mapping of the detector
0149: plane to the reference image.
0150: di (numpy.ndarray) : Initial sample's translations along the vertical
0151: detector axis in pixels.
0152: dj (numpy.ndarray) : Initial sample's translations along the horizontal
0153: detector axis in pixels.
0154: ds_y (float) : Sampling interval of reference image in pixels along the
0155: vertical axis.
0156: ds_x (float) : Sampling interval of reference image in pixels along the
0157: horizontal axis.
0158: h (float) : Gaussian kernel bandwidth in pixels.
0159: return_nm0 (bool) : If True, also returns the lower bounds (`n0`, `m0`)
0160: of the reference image in pixels.
0161: num_threads (int) : Number of threads.
0162:
0163: Returns:
0164: Tuple[numpy.ndarray, int, int] : A tuple of three elements ('I0', 'n0',
0165: 'm0'). The elements are the following:
0166:
0167: * 'I0' : Reference image array.
0168: * 'n0' : The lower bounds of the vertical detector axis of the reference
0169: image at the reference frame in pixels. Only provided if `return_nm0` is
0170: True.
0171: * 'm0' : The lower bounds of the horizontal detector axis of the reference
0172: image at the reference frame in pixels. Only provided if `return_nm0` is
0173: True.
0174:
0175: Notes:
0176: The pixel mapping `u` maps the intensity measurements from the detector
0177: plane to the reference plane as follows:
0178:
0179: .. math::
0180: i_{ref}[n, i, j] = u[0, i, j] + di[n], \; j_{ref}[n, i, j] = u[1, i, j] + dj[n]
0181:
0182: The reference image profile :math:`I_{ref}[ii, jj]` is obtained with the
0183: kernel regression extimator as follows:
0184:
0185: .. math::
0186:
0187: I_{ref}[i, j] = \frac{\sum_{n, i^{\prime}, j^{\prime}} K[i - i_{ref}[n,
0188: i^{\prime}, j^{\prime}], j - j_{ref}[n, i^{\prime}, j^{\prime}], h]
0189: \; W[i^{\prime}, j^{\prime}] I[n, i^{\prime}, j^{\prime}]}
0190: {\sum_{n, i^{\prime}, j^{\prime}} K[i - i_{ref}[n, i^{\prime}, j^{\prime}],
0191: j - j_{ref}[n, i^{\prime}, j^{\prime}], h] \; W^2[i^{\prime}, j^{\prime}]}
0192:
0193: where :math:`K[i, j, h] = \frac{1}{\sqrt{2 \pi}} \exp(-\frac{i^2 + j^2}{h})`
0194: is the Gaussian kernel.
0195: """
+0196: if ds_y <= 0.0 or ds_x <= 0.0:
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
+0197: raise ValueError('Sampling intervals must be positive')
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 197, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 197, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 197, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 197, __pyx_L1_error) /* … */ __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_u_Sampling_intervals_must_be_posit); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(0, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__6); __Pyx_GIVEREF(__pyx_tuple__6);
0198:
+0199: cdef int type_num = np.PyArray_TYPE(W.base)
__pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 199, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 199, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 199, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 199, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0200: cdef int N = I_n.shape[0], Y = I_n.shape[1], X = I_n.shape[2]
__pyx_v_N = (__pyx_v_I_n.shape[0]); __pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_N = (__pyx_v_I_n.shape[0]); __pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_N = (__pyx_v_I_n.shape[0]); __pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_N = (__pyx_v_I_n.shape[0]); __pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]);
0201: cdef int i, j, t, k
0202:
+0203: cdef float_t n0 = -min_float(&u[0, 0, 0], Y * X) + max_float(&di[0], N)
__pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_v_n0 = ((-__pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_5 * __pyx_v_u.strides[0]) ) + __pyx_t_6 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) )))), (__pyx_v_Y * __pyx_v_X))) + __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_di.data) + __pyx_t_8)) )))), __pyx_v_N)); /* … */ __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_v_n0 = ((-__pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_5 * __pyx_v_u.strides[0]) ) + __pyx_t_6 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) )))), (__pyx_v_Y * __pyx_v_X))) + __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_di.data) + __pyx_t_8)) )))), __pyx_v_N)); /* … */ __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_v_n0 = ((-__pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_5 * __pyx_v_u.strides[0]) ) + __pyx_t_6 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) )))), (__pyx_v_Y * __pyx_v_X))) + __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_di.data) + __pyx_t_8)) )))), __pyx_v_N)); /* … */ __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_v_n0 = ((-__pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_5 * __pyx_v_u.strides[0]) ) + __pyx_t_6 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) )))), (__pyx_v_Y * __pyx_v_X))) + __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_di.data) + __pyx_t_8)) )))), __pyx_v_N));
+0204: cdef float_t m0 = -min_float(&u[1, 0, 0], Y * X) + max_float(&dj[0], N)
__pyx_t_8 = 1; __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_v_m0 = ((-__pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_8 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) )))), (__pyx_v_Y * __pyx_v_X))) + __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dj.data) + __pyx_t_5)) )))), __pyx_v_N)); /* … */ __pyx_t_8 = 1; __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_v_m0 = ((-__pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_8 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) )))), (__pyx_v_Y * __pyx_v_X))) + __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dj.data) + __pyx_t_5)) )))), __pyx_v_N)); /* … */ __pyx_t_8 = 1; __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_v_m0 = ((-__pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_8 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) )))), (__pyx_v_Y * __pyx_v_X))) + __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dj.data) + __pyx_t_5)) )))), __pyx_v_N)); /* … */ __pyx_t_8 = 1; __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_v_m0 = ((-__pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_8 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) )))), (__pyx_v_Y * __pyx_v_X))) + __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dj.data) + __pyx_t_5)) )))), __pyx_v_N));
+0205: cdef int Y0 = <int>((max_float(&u[0, 0, 0], Y * X) - min_float(&di[0], N) + n0) / ds_y) + 1
__pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_v_Y0 = (((int)(((__pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_5 * __pyx_v_u.strides[0]) ) + __pyx_t_6 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) )))), (__pyx_v_Y * __pyx_v_X)) - __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_di.data) + __pyx_t_8)) )))), __pyx_v_N)) + __pyx_v_n0) / ((__pyx_t_5numpy_float64_t)__pyx_v_ds_y))) + 1); /* … */ __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_v_Y0 = (((int)(((double)((__pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_5 * __pyx_v_u.strides[0]) ) + __pyx_t_6 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) )))), (__pyx_v_Y * __pyx_v_X)) - __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_di.data) + __pyx_t_8)) )))), __pyx_v_N)) + __pyx_v_n0)) / __pyx_v_ds_y)) + 1); /* … */ __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_v_Y0 = (((int)(((__pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_5 * __pyx_v_u.strides[0]) ) + __pyx_t_6 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) )))), (__pyx_v_Y * __pyx_v_X)) - __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_di.data) + __pyx_t_8)) )))), __pyx_v_N)) + __pyx_v_n0) / ((__pyx_t_5numpy_float64_t)__pyx_v_ds_y))) + 1); /* … */ __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_v_Y0 = (((int)(((double)((__pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_5 * __pyx_v_u.strides[0]) ) + __pyx_t_6 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) )))), (__pyx_v_Y * __pyx_v_X)) - __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_di.data) + __pyx_t_8)) )))), __pyx_v_N)) + __pyx_v_n0)) / __pyx_v_ds_y)) + 1);
+0206: cdef int X0 = <int>((max_float(&u[1, 0, 0], Y * X) - min_float(&dj[0], N) + m0) / ds_x) + 1
__pyx_t_8 = 1; __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_v_X0 = (((int)(((__pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_8 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) )))), (__pyx_v_Y * __pyx_v_X)) - __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dj.data) + __pyx_t_5)) )))), __pyx_v_N)) + __pyx_v_m0) / ((__pyx_t_5numpy_float64_t)__pyx_v_ds_x))) + 1); /* … */ __pyx_t_8 = 1; __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_v_X0 = (((int)(((double)((__pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_8 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) )))), (__pyx_v_Y * __pyx_v_X)) - __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dj.data) + __pyx_t_5)) )))), __pyx_v_N)) + __pyx_v_m0)) / __pyx_v_ds_x)) + 1); /* … */ __pyx_t_8 = 1; __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_v_X0 = (((int)(((__pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_8 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) )))), (__pyx_v_Y * __pyx_v_X)) - __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dj.data) + __pyx_t_5)) )))), __pyx_v_N)) + __pyx_v_m0) / ((__pyx_t_5numpy_float64_t)__pyx_v_ds_x))) + 1); /* … */ __pyx_t_8 = 1; __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_v_X0 = (((int)(((double)((__pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_8 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) )))), (__pyx_v_Y * __pyx_v_X)) - __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dj.data) + __pyx_t_5)) )))), __pyx_v_N)) + __pyx_v_m0)) / __pyx_v_ds_x)) + 1);
0207:
+0208: cdef np.npy_intp *shape = [num_threads, Y0, X0]
__pyx_t_9[0] = __pyx_v_num_threads; __pyx_t_9[1] = __pyx_v_Y0; __pyx_t_9[2] = __pyx_v_X0; __pyx_v_shape = __pyx_t_9; /* … */ __pyx_t_9[0] = __pyx_v_num_threads; __pyx_t_9[1] = __pyx_v_Y0; __pyx_t_9[2] = __pyx_v_X0; __pyx_v_shape = __pyx_t_9; /* … */ __pyx_t_9[0] = __pyx_v_num_threads; __pyx_t_9[1] = __pyx_v_Y0; __pyx_t_9[2] = __pyx_v_X0; __pyx_v_shape = __pyx_t_9; /* … */ __pyx_t_9[0] = __pyx_v_num_threads; __pyx_t_9[1] = __pyx_v_Y0; __pyx_t_9[2] = __pyx_v_X0; __pyx_v_shape = __pyx_t_9;
+0209: cdef float_t[:, :, ::1] I0_buf = np.PyArray_ZEROS(3, shape, type_num, 0)
__pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 209, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_I0_buf = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 209, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_I0_buf = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 209, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_I0_buf = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 209, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_I0_buf = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL;
+0210: cdef float_t[:, :, ::1] W0_buf = np.PyArray_ZEROS(3, shape, type_num, 0)
__pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 210, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_W0_buf = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 210, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_W0_buf = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 210, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_W0_buf = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 210, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_W0_buf = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL;
+0211: cdef np.ndarray I0 = np.PyArray_SimpleNew(2, shape + 1, type_num)
__pyx_t_4 = PyArray_SimpleNew(2, (__pyx_v_shape + 1), __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 211, __pyx_L1_error) __pyx_v_I0 = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_SimpleNew(2, (__pyx_v_shape + 1), __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 211, __pyx_L1_error) __pyx_v_I0 = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_SimpleNew(2, (__pyx_v_shape + 1), __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 211, __pyx_L1_error) __pyx_v_I0 = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_SimpleNew(2, (__pyx_v_shape + 1), __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 211, __pyx_L1_error) __pyx_v_I0 = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0;
0212:
+0213: if Y0 > 1:
__pyx_t_1 = ((__pyx_v_Y0 > 1) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L6;
}
/* … */
__pyx_t_1 = ((__pyx_v_Y0 > 1) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L6;
}
/* … */
__pyx_t_1 = ((__pyx_v_Y0 > 1) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L6;
}
/* … */
__pyx_t_1 = ((__pyx_v_Y0 > 1) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L6;
}
+0214: for i in prange(N, schedule='guided', num_threads=num_threads, nogil=True):
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_11 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_13 = (__pyx_t_11 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_13 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_11 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_13 = (__pyx_t_11 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_13 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_13; __pyx_t_12++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_12);
/* Initialize private variables to invalid values */
__pyx_v_t = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L9;
}
__pyx_L9:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_11 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_13 = (__pyx_t_11 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_13 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_11 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_13 = (__pyx_t_11 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_13 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_13; __pyx_t_12++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_12);
/* Initialize private variables to invalid values */
__pyx_v_t = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L9;
}
__pyx_L9:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_11 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_13 = (__pyx_t_11 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_13 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_11 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_13 = (__pyx_t_11 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_13 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_13; __pyx_t_12++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_12);
/* Initialize private variables to invalid values */
__pyx_v_t = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L9;
}
__pyx_L9:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_11 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_13 = (__pyx_t_11 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_13 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_11 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_13 = (__pyx_t_11 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_13 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_13; __pyx_t_12++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_12);
/* Initialize private variables to invalid values */
__pyx_v_t = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L9;
}
__pyx_L9:;
}
}
+0215: t = openmp.omp_get_thread_num()
__pyx_v_t = omp_get_thread_num();
/* … */
__pyx_v_t = omp_get_thread_num();
/* … */
__pyx_v_t = omp_get_thread_num();
/* … */
__pyx_v_t = omp_get_thread_num();
+0216: KR_frame_2d(I0_buf[t], W0_buf[t], I_n[i], W, u, di[i] - n0, dj[i] - m0, ds_y, ds_x, h)
__pyx_t_14.data = __pyx_v_I0_buf.data;
__pyx_t_14.memview = __pyx_v_I0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_14, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I0_buf.strides[0];
__pyx_t_14.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_14.shape[0] = __pyx_v_I0_buf.shape[1];
__pyx_t_14.strides[0] = __pyx_v_I0_buf.strides[1];
__pyx_t_14.suboffsets[0] = -1;
__pyx_t_14.shape[1] = __pyx_v_I0_buf.shape[2];
__pyx_t_14.strides[1] = __pyx_v_I0_buf.strides[2];
__pyx_t_14.suboffsets[1] = -1;
__pyx_t_15.data = __pyx_v_W0_buf.data;
__pyx_t_15.memview = __pyx_v_W0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_15, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_W0_buf.strides[0];
__pyx_t_15.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_15.shape[0] = __pyx_v_W0_buf.shape[1];
__pyx_t_15.strides[0] = __pyx_v_W0_buf.strides[1];
__pyx_t_15.suboffsets[0] = -1;
__pyx_t_15.shape[1] = __pyx_v_W0_buf.shape[2];
__pyx_t_15.strides[1] = __pyx_v_W0_buf.strides[2];
__pyx_t_15.suboffsets[1] = -1;
__pyx_t_16.data = __pyx_v_I_n.data;
__pyx_t_16.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_16, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_16.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_16.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_16.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_16.suboffsets[0] = -1;
__pyx_t_16.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_16.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_16.suboffsets[1] = -1;
__pyx_t_5 = __pyx_v_i;
__pyx_t_6 = __pyx_v_i;
__pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_KR_frame_2d(__pyx_t_14, __pyx_t_15, __pyx_t_16, __pyx_v_W, __pyx_v_u, ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_di.data) + __pyx_t_5)) ))) - __pyx_v_n0), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dj.data) + __pyx_t_6)) ))) - __pyx_v_m0), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h);
__PYX_XDEC_MEMVIEW(&__pyx_t_14, 0);
__pyx_t_14.memview = NULL;
__pyx_t_14.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_15, 0);
__pyx_t_15.memview = NULL;
__pyx_t_15.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 0);
__pyx_t_16.memview = NULL;
__pyx_t_16.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_14.data = __pyx_v_I0_buf.data;
__pyx_t_14.memview = __pyx_v_I0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_14, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I0_buf.strides[0];
__pyx_t_14.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_14.shape[0] = __pyx_v_I0_buf.shape[1];
__pyx_t_14.strides[0] = __pyx_v_I0_buf.strides[1];
__pyx_t_14.suboffsets[0] = -1;
__pyx_t_14.shape[1] = __pyx_v_I0_buf.shape[2];
__pyx_t_14.strides[1] = __pyx_v_I0_buf.strides[2];
__pyx_t_14.suboffsets[1] = -1;
__pyx_t_15.data = __pyx_v_W0_buf.data;
__pyx_t_15.memview = __pyx_v_W0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_15, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_W0_buf.strides[0];
__pyx_t_15.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_15.shape[0] = __pyx_v_W0_buf.shape[1];
__pyx_t_15.strides[0] = __pyx_v_W0_buf.strides[1];
__pyx_t_15.suboffsets[0] = -1;
__pyx_t_15.shape[1] = __pyx_v_W0_buf.shape[2];
__pyx_t_15.strides[1] = __pyx_v_W0_buf.strides[2];
__pyx_t_15.suboffsets[1] = -1;
__pyx_t_16.data = __pyx_v_I_n.data;
__pyx_t_16.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_16, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_16.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_16.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_16.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_16.suboffsets[0] = -1;
__pyx_t_16.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_16.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_16.suboffsets[1] = -1;
__pyx_t_5 = __pyx_v_i;
__pyx_t_6 = __pyx_v_i;
__pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_KR_frame_2d(__pyx_t_14, __pyx_t_15, __pyx_t_16, __pyx_v_W, __pyx_v_u, ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_di.data) + __pyx_t_5)) ))) - __pyx_v_n0), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dj.data) + __pyx_t_6)) ))) - __pyx_v_m0), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h);
__PYX_XDEC_MEMVIEW(&__pyx_t_14, 0);
__pyx_t_14.memview = NULL;
__pyx_t_14.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_15, 0);
__pyx_t_15.memview = NULL;
__pyx_t_15.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 0);
__pyx_t_16.memview = NULL;
__pyx_t_16.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_14.data = __pyx_v_I0_buf.data;
__pyx_t_14.memview = __pyx_v_I0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_14, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I0_buf.strides[0];
__pyx_t_14.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_14.shape[0] = __pyx_v_I0_buf.shape[1];
__pyx_t_14.strides[0] = __pyx_v_I0_buf.strides[1];
__pyx_t_14.suboffsets[0] = -1;
__pyx_t_14.shape[1] = __pyx_v_I0_buf.shape[2];
__pyx_t_14.strides[1] = __pyx_v_I0_buf.strides[2];
__pyx_t_14.suboffsets[1] = -1;
__pyx_t_15.data = __pyx_v_W0_buf.data;
__pyx_t_15.memview = __pyx_v_W0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_15, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_W0_buf.strides[0];
__pyx_t_15.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_15.shape[0] = __pyx_v_W0_buf.shape[1];
__pyx_t_15.strides[0] = __pyx_v_W0_buf.strides[1];
__pyx_t_15.suboffsets[0] = -1;
__pyx_t_15.shape[1] = __pyx_v_W0_buf.shape[2];
__pyx_t_15.strides[1] = __pyx_v_W0_buf.strides[2];
__pyx_t_15.suboffsets[1] = -1;
__pyx_t_16.data = __pyx_v_I_n.data;
__pyx_t_16.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_16, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_16.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_16.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_16.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_16.suboffsets[0] = -1;
__pyx_t_16.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_16.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_16.suboffsets[1] = -1;
__pyx_t_5 = __pyx_v_i;
__pyx_t_6 = __pyx_v_i;
__pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_KR_frame_2d(__pyx_t_14, __pyx_t_15, __pyx_t_16, __pyx_v_W, __pyx_v_u, ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_di.data) + __pyx_t_5)) ))) - __pyx_v_n0), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dj.data) + __pyx_t_6)) ))) - __pyx_v_m0), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h);
__PYX_XDEC_MEMVIEW(&__pyx_t_14, 0);
__pyx_t_14.memview = NULL;
__pyx_t_14.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_15, 0);
__pyx_t_15.memview = NULL;
__pyx_t_15.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 0);
__pyx_t_16.memview = NULL;
__pyx_t_16.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_14.data = __pyx_v_I0_buf.data;
__pyx_t_14.memview = __pyx_v_I0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_14, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I0_buf.strides[0];
__pyx_t_14.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_14.shape[0] = __pyx_v_I0_buf.shape[1];
__pyx_t_14.strides[0] = __pyx_v_I0_buf.strides[1];
__pyx_t_14.suboffsets[0] = -1;
__pyx_t_14.shape[1] = __pyx_v_I0_buf.shape[2];
__pyx_t_14.strides[1] = __pyx_v_I0_buf.strides[2];
__pyx_t_14.suboffsets[1] = -1;
__pyx_t_15.data = __pyx_v_W0_buf.data;
__pyx_t_15.memview = __pyx_v_W0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_15, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_W0_buf.strides[0];
__pyx_t_15.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_15.shape[0] = __pyx_v_W0_buf.shape[1];
__pyx_t_15.strides[0] = __pyx_v_W0_buf.strides[1];
__pyx_t_15.suboffsets[0] = -1;
__pyx_t_15.shape[1] = __pyx_v_W0_buf.shape[2];
__pyx_t_15.strides[1] = __pyx_v_W0_buf.strides[2];
__pyx_t_15.suboffsets[1] = -1;
__pyx_t_16.data = __pyx_v_I_n.data;
__pyx_t_16.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_16, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_16.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_16.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_16.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_16.suboffsets[0] = -1;
__pyx_t_16.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_16.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_16.suboffsets[1] = -1;
__pyx_t_5 = __pyx_v_i;
__pyx_t_6 = __pyx_v_i;
__pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_KR_frame_2d(__pyx_t_14, __pyx_t_15, __pyx_t_16, __pyx_v_W, __pyx_v_u, ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_di.data) + __pyx_t_5)) ))) - __pyx_v_n0), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dj.data) + __pyx_t_6)) ))) - __pyx_v_m0), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h);
__PYX_XDEC_MEMVIEW(&__pyx_t_14, 0);
__pyx_t_14.memview = NULL;
__pyx_t_14.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_15, 0);
__pyx_t_15.memview = NULL;
__pyx_t_15.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 0);
__pyx_t_16.memview = NULL;
__pyx_t_16.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
0217: else:
+0218: for i in prange(N, schedule='guided', num_threads=num_threads, nogil=True):
/*else*/ {
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_13 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_11 = (__pyx_t_13 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_11 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_13 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_11 = (__pyx_t_13 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_11 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_12);
/* Initialize private variables to invalid values */
__pyx_v_t = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L18;
}
__pyx_L18:;
}
}
}
__pyx_L6:;
/* … */
/*else*/ {
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_13 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_11 = (__pyx_t_13 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_11 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_13 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_11 = (__pyx_t_13 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_11 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_12);
/* Initialize private variables to invalid values */
__pyx_v_t = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L18;
}
__pyx_L18:;
}
}
}
__pyx_L6:;
/* … */
/*else*/ {
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_13 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_11 = (__pyx_t_13 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_11 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_13 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_11 = (__pyx_t_13 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_11 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_12);
/* Initialize private variables to invalid values */
__pyx_v_t = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L18;
}
__pyx_L18:;
}
}
}
__pyx_L6:;
/* … */
/*else*/ {
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_13 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_11 = (__pyx_t_13 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_11 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_13 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_11 = (__pyx_t_13 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_11 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_12);
/* Initialize private variables to invalid values */
__pyx_v_t = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L18;
}
__pyx_L18:;
}
}
}
__pyx_L6:;
+0219: t = openmp.omp_get_thread_num()
__pyx_v_t = omp_get_thread_num();
/* … */
__pyx_v_t = omp_get_thread_num();
/* … */
__pyx_v_t = omp_get_thread_num();
/* … */
__pyx_v_t = omp_get_thread_num();
+0220: KR_frame_1d(I0_buf[t], W0_buf[t], I_n[i], W, u, dj[i] - m0, ds_x, h)
__pyx_t_15.data = __pyx_v_I0_buf.data;
__pyx_t_15.memview = __pyx_v_I0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_15, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I0_buf.strides[0];
__pyx_t_15.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_15.shape[0] = __pyx_v_I0_buf.shape[1];
__pyx_t_15.strides[0] = __pyx_v_I0_buf.strides[1];
__pyx_t_15.suboffsets[0] = -1;
__pyx_t_15.shape[1] = __pyx_v_I0_buf.shape[2];
__pyx_t_15.strides[1] = __pyx_v_I0_buf.strides[2];
__pyx_t_15.suboffsets[1] = -1;
__pyx_t_14.data = __pyx_v_W0_buf.data;
__pyx_t_14.memview = __pyx_v_W0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_14, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_W0_buf.strides[0];
__pyx_t_14.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_14.shape[0] = __pyx_v_W0_buf.shape[1];
__pyx_t_14.strides[0] = __pyx_v_W0_buf.strides[1];
__pyx_t_14.suboffsets[0] = -1;
__pyx_t_14.shape[1] = __pyx_v_W0_buf.shape[2];
__pyx_t_14.strides[1] = __pyx_v_W0_buf.strides[2];
__pyx_t_14.suboffsets[1] = -1;
__pyx_t_16.data = __pyx_v_I_n.data;
__pyx_t_16.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_16, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_16.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_16.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_16.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_16.suboffsets[0] = -1;
__pyx_t_16.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_16.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_16.suboffsets[1] = -1;
__pyx_t_6 = __pyx_v_i;
__pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_KR_frame_1d(__pyx_t_15, __pyx_t_14, __pyx_t_16, __pyx_v_W, __pyx_v_u, ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dj.data) + __pyx_t_6)) ))) - __pyx_v_m0), __pyx_v_ds_x, __pyx_v_h);
__PYX_XDEC_MEMVIEW(&__pyx_t_15, 0);
__pyx_t_15.memview = NULL;
__pyx_t_15.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_14, 0);
__pyx_t_14.memview = NULL;
__pyx_t_14.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 0);
__pyx_t_16.memview = NULL;
__pyx_t_16.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_15.data = __pyx_v_I0_buf.data;
__pyx_t_15.memview = __pyx_v_I0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_15, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I0_buf.strides[0];
__pyx_t_15.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_15.shape[0] = __pyx_v_I0_buf.shape[1];
__pyx_t_15.strides[0] = __pyx_v_I0_buf.strides[1];
__pyx_t_15.suboffsets[0] = -1;
__pyx_t_15.shape[1] = __pyx_v_I0_buf.shape[2];
__pyx_t_15.strides[1] = __pyx_v_I0_buf.strides[2];
__pyx_t_15.suboffsets[1] = -1;
__pyx_t_14.data = __pyx_v_W0_buf.data;
__pyx_t_14.memview = __pyx_v_W0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_14, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_W0_buf.strides[0];
__pyx_t_14.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_14.shape[0] = __pyx_v_W0_buf.shape[1];
__pyx_t_14.strides[0] = __pyx_v_W0_buf.strides[1];
__pyx_t_14.suboffsets[0] = -1;
__pyx_t_14.shape[1] = __pyx_v_W0_buf.shape[2];
__pyx_t_14.strides[1] = __pyx_v_W0_buf.strides[2];
__pyx_t_14.suboffsets[1] = -1;
__pyx_t_16.data = __pyx_v_I_n.data;
__pyx_t_16.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_16, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_16.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_16.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_16.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_16.suboffsets[0] = -1;
__pyx_t_16.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_16.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_16.suboffsets[1] = -1;
__pyx_t_6 = __pyx_v_i;
__pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_KR_frame_1d(__pyx_t_15, __pyx_t_14, __pyx_t_16, __pyx_v_W, __pyx_v_u, ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dj.data) + __pyx_t_6)) ))) - __pyx_v_m0), __pyx_v_ds_x, __pyx_v_h);
__PYX_XDEC_MEMVIEW(&__pyx_t_15, 0);
__pyx_t_15.memview = NULL;
__pyx_t_15.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_14, 0);
__pyx_t_14.memview = NULL;
__pyx_t_14.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 0);
__pyx_t_16.memview = NULL;
__pyx_t_16.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_15.data = __pyx_v_I0_buf.data;
__pyx_t_15.memview = __pyx_v_I0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_15, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I0_buf.strides[0];
__pyx_t_15.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_15.shape[0] = __pyx_v_I0_buf.shape[1];
__pyx_t_15.strides[0] = __pyx_v_I0_buf.strides[1];
__pyx_t_15.suboffsets[0] = -1;
__pyx_t_15.shape[1] = __pyx_v_I0_buf.shape[2];
__pyx_t_15.strides[1] = __pyx_v_I0_buf.strides[2];
__pyx_t_15.suboffsets[1] = -1;
__pyx_t_14.data = __pyx_v_W0_buf.data;
__pyx_t_14.memview = __pyx_v_W0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_14, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_W0_buf.strides[0];
__pyx_t_14.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_14.shape[0] = __pyx_v_W0_buf.shape[1];
__pyx_t_14.strides[0] = __pyx_v_W0_buf.strides[1];
__pyx_t_14.suboffsets[0] = -1;
__pyx_t_14.shape[1] = __pyx_v_W0_buf.shape[2];
__pyx_t_14.strides[1] = __pyx_v_W0_buf.strides[2];
__pyx_t_14.suboffsets[1] = -1;
__pyx_t_16.data = __pyx_v_I_n.data;
__pyx_t_16.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_16, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_16.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_16.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_16.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_16.suboffsets[0] = -1;
__pyx_t_16.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_16.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_16.suboffsets[1] = -1;
__pyx_t_6 = __pyx_v_i;
__pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_KR_frame_1d(__pyx_t_15, __pyx_t_14, __pyx_t_16, __pyx_v_W, __pyx_v_u, ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dj.data) + __pyx_t_6)) ))) - __pyx_v_m0), __pyx_v_ds_x, __pyx_v_h);
__PYX_XDEC_MEMVIEW(&__pyx_t_15, 0);
__pyx_t_15.memview = NULL;
__pyx_t_15.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_14, 0);
__pyx_t_14.memview = NULL;
__pyx_t_14.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 0);
__pyx_t_16.memview = NULL;
__pyx_t_16.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_15.data = __pyx_v_I0_buf.data;
__pyx_t_15.memview = __pyx_v_I0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_15, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I0_buf.strides[0];
__pyx_t_15.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_15.shape[0] = __pyx_v_I0_buf.shape[1];
__pyx_t_15.strides[0] = __pyx_v_I0_buf.strides[1];
__pyx_t_15.suboffsets[0] = -1;
__pyx_t_15.shape[1] = __pyx_v_I0_buf.shape[2];
__pyx_t_15.strides[1] = __pyx_v_I0_buf.strides[2];
__pyx_t_15.suboffsets[1] = -1;
__pyx_t_14.data = __pyx_v_W0_buf.data;
__pyx_t_14.memview = __pyx_v_W0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_14, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_W0_buf.strides[0];
__pyx_t_14.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_14.shape[0] = __pyx_v_W0_buf.shape[1];
__pyx_t_14.strides[0] = __pyx_v_W0_buf.strides[1];
__pyx_t_14.suboffsets[0] = -1;
__pyx_t_14.shape[1] = __pyx_v_W0_buf.shape[2];
__pyx_t_14.strides[1] = __pyx_v_W0_buf.strides[2];
__pyx_t_14.suboffsets[1] = -1;
__pyx_t_16.data = __pyx_v_I_n.data;
__pyx_t_16.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_16, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_16.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_16.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_16.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_16.suboffsets[0] = -1;
__pyx_t_16.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_16.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_16.suboffsets[1] = -1;
__pyx_t_6 = __pyx_v_i;
__pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_KR_frame_1d(__pyx_t_15, __pyx_t_14, __pyx_t_16, __pyx_v_W, __pyx_v_u, ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dj.data) + __pyx_t_6)) ))) - __pyx_v_m0), __pyx_v_ds_x, __pyx_v_h);
__PYX_XDEC_MEMVIEW(&__pyx_t_15, 0);
__pyx_t_15.memview = NULL;
__pyx_t_15.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_14, 0);
__pyx_t_14.memview = NULL;
__pyx_t_14.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 0);
__pyx_t_16.memview = NULL;
__pyx_t_16.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
0221:
+0222: cdef float_t[:, ::1] _I0 = I0
__pyx_t_14 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(((PyObject *)__pyx_v_I0), PyBUF_WRITABLE); if (unlikely(!__pyx_t_14.memview)) __PYX_ERR(0, 222, __pyx_L1_error) __pyx_v__I0 = __pyx_t_14; __pyx_t_14.memview = NULL; __pyx_t_14.data = NULL; /* … */ __pyx_t_14 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(((PyObject *)__pyx_v_I0), PyBUF_WRITABLE); if (unlikely(!__pyx_t_14.memview)) __PYX_ERR(0, 222, __pyx_L1_error) __pyx_v__I0 = __pyx_t_14; __pyx_t_14.memview = NULL; __pyx_t_14.data = NULL; /* … */ __pyx_t_14 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(((PyObject *)__pyx_v_I0), PyBUF_WRITABLE); if (unlikely(!__pyx_t_14.memview)) __PYX_ERR(0, 222, __pyx_L1_error) __pyx_v__I0 = __pyx_t_14; __pyx_t_14.memview = NULL; __pyx_t_14.data = NULL; /* … */ __pyx_t_14 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(((PyObject *)__pyx_v_I0), PyBUF_WRITABLE); if (unlikely(!__pyx_t_14.memview)) __PYX_ERR(0, 222, __pyx_L1_error) __pyx_v__I0 = __pyx_t_14; __pyx_t_14.memview = NULL; __pyx_t_14.data = NULL;
0223: cdef float_t I0_sum, W0_sum
+0224: for k in prange(X0, schedule='guided', num_threads=num_threads, nogil=True):
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_11 = __pyx_v_X0;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_13 = (__pyx_t_11 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_13 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_I0_sum) lastprivate(__pyx_v_W0_sum) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_11 = __pyx_v_X0;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_13 = (__pyx_t_11 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_13 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_I0_sum) lastprivate(__pyx_v_W0_sum) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_13; __pyx_t_12++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_12);
/* Initialize private variables to invalid values */
__pyx_v_I0_sum = ((__pyx_t_5numpy_float64_t)__PYX_NAN());
__pyx_v_W0_sum = ((__pyx_t_5numpy_float64_t)__PYX_NAN());
__pyx_v_i = ((int)0xbad0bad0);
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L27;
}
__pyx_L27:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_11 = __pyx_v_X0;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_13 = (__pyx_t_11 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_13 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_I0_sum) lastprivate(__pyx_v_W0_sum) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_11 = __pyx_v_X0;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_13 = (__pyx_t_11 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_13 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_I0_sum) lastprivate(__pyx_v_W0_sum) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_13; __pyx_t_12++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_12);
/* Initialize private variables to invalid values */
__pyx_v_I0_sum = ((__pyx_t_5numpy_float32_t)__PYX_NAN());
__pyx_v_W0_sum = ((__pyx_t_5numpy_float32_t)__PYX_NAN());
__pyx_v_i = ((int)0xbad0bad0);
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L27;
}
__pyx_L27:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_11 = __pyx_v_X0;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_13 = (__pyx_t_11 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_13 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_I0_sum) lastprivate(__pyx_v_W0_sum) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_11 = __pyx_v_X0;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_13 = (__pyx_t_11 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_13 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_I0_sum) lastprivate(__pyx_v_W0_sum) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_13; __pyx_t_12++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_12);
/* Initialize private variables to invalid values */
__pyx_v_I0_sum = ((__pyx_t_5numpy_float64_t)__PYX_NAN());
__pyx_v_W0_sum = ((__pyx_t_5numpy_float64_t)__PYX_NAN());
__pyx_v_i = ((int)0xbad0bad0);
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L27;
}
__pyx_L27:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_11 = __pyx_v_X0;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_13 = (__pyx_t_11 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_13 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_I0_sum) lastprivate(__pyx_v_W0_sum) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_11 = __pyx_v_X0;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_13 = (__pyx_t_11 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_13 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_I0_sum) lastprivate(__pyx_v_W0_sum) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_13; __pyx_t_12++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_12);
/* Initialize private variables to invalid values */
__pyx_v_I0_sum = ((__pyx_t_5numpy_float32_t)__PYX_NAN());
__pyx_v_W0_sum = ((__pyx_t_5numpy_float32_t)__PYX_NAN());
__pyx_v_i = ((int)0xbad0bad0);
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L27;
}
__pyx_L27:;
}
}
+0225: for j in range(Y0):
__pyx_t_17 = __pyx_v_Y0;
__pyx_t_18 = __pyx_t_17;
for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
__pyx_v_j = __pyx_t_19;
/* … */
__pyx_t_17 = __pyx_v_Y0;
__pyx_t_18 = __pyx_t_17;
for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
__pyx_v_j = __pyx_t_19;
/* … */
__pyx_t_17 = __pyx_v_Y0;
__pyx_t_18 = __pyx_t_17;
for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
__pyx_v_j = __pyx_t_19;
/* … */
__pyx_t_17 = __pyx_v_Y0;
__pyx_t_18 = __pyx_t_17;
for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
__pyx_v_j = __pyx_t_19;
+0226: I0_sum = 0.0; W0_sum = 0.0
__pyx_v_I0_sum = 0.0;
__pyx_v_W0_sum = 0.0;
/* … */
__pyx_v_I0_sum = 0.0;
__pyx_v_W0_sum = 0.0;
/* … */
__pyx_v_I0_sum = 0.0;
__pyx_v_W0_sum = 0.0;
/* … */
__pyx_v_I0_sum = 0.0;
__pyx_v_W0_sum = 0.0;
+0227: for i in range(<int>num_threads):
__pyx_t_20 = ((int)__pyx_v_num_threads);
__pyx_t_21 = __pyx_t_20;
for (__pyx_t_22 = 0; __pyx_t_22 < __pyx_t_21; __pyx_t_22+=1) {
__pyx_v_i = __pyx_t_22;
/* … */
__pyx_t_20 = ((int)__pyx_v_num_threads);
__pyx_t_21 = __pyx_t_20;
for (__pyx_t_22 = 0; __pyx_t_22 < __pyx_t_21; __pyx_t_22+=1) {
__pyx_v_i = __pyx_t_22;
/* … */
__pyx_t_20 = ((int)__pyx_v_num_threads);
__pyx_t_21 = __pyx_t_20;
for (__pyx_t_22 = 0; __pyx_t_22 < __pyx_t_21; __pyx_t_22+=1) {
__pyx_v_i = __pyx_t_22;
/* … */
__pyx_t_20 = ((int)__pyx_v_num_threads);
__pyx_t_21 = __pyx_t_20;
for (__pyx_t_22 = 0; __pyx_t_22 < __pyx_t_21; __pyx_t_22+=1) {
__pyx_v_i = __pyx_t_22;
+0228: I0_sum = I0_sum + I0_buf[i, j, k]
__pyx_t_6 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_v_I0_sum = (__pyx_v_I0_sum + (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_buf.data + __pyx_t_6 * __pyx_v_I0_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_I0_buf.strides[1]) )) + __pyx_t_7)) ))));
/* … */
__pyx_t_6 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_v_I0_sum = (__pyx_v_I0_sum + (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_buf.data + __pyx_t_6 * __pyx_v_I0_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_I0_buf.strides[1]) )) + __pyx_t_7)) ))));
/* … */
__pyx_t_6 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_v_I0_sum = (__pyx_v_I0_sum + (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_buf.data + __pyx_t_6 * __pyx_v_I0_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_I0_buf.strides[1]) )) + __pyx_t_7)) ))));
/* … */
__pyx_t_6 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_v_I0_sum = (__pyx_v_I0_sum + (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_buf.data + __pyx_t_6 * __pyx_v_I0_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_I0_buf.strides[1]) )) + __pyx_t_7)) ))));
+0229: W0_sum = W0_sum + W0_buf[i, j, k]
__pyx_t_7 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_6 = __pyx_v_k;
__pyx_v_W0_sum = (__pyx_v_W0_sum + (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_buf.data + __pyx_t_7 * __pyx_v_W0_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_W0_buf.strides[1]) )) + __pyx_t_6)) ))));
}
/* … */
__pyx_t_7 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_6 = __pyx_v_k;
__pyx_v_W0_sum = (__pyx_v_W0_sum + (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_buf.data + __pyx_t_7 * __pyx_v_W0_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_W0_buf.strides[1]) )) + __pyx_t_6)) ))));
}
/* … */
__pyx_t_7 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_6 = __pyx_v_k;
__pyx_v_W0_sum = (__pyx_v_W0_sum + (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_buf.data + __pyx_t_7 * __pyx_v_W0_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_W0_buf.strides[1]) )) + __pyx_t_6)) ))));
}
/* … */
__pyx_t_7 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_6 = __pyx_v_k;
__pyx_v_W0_sum = (__pyx_v_W0_sum + (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_buf.data + __pyx_t_7 * __pyx_v_W0_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_W0_buf.strides[1]) )) + __pyx_t_6)) ))));
}
0230:
+0231: _I0[j, k] = I0_sum / W0_sum if W0_sum > 0.0 else 1.0
if (((__pyx_v_W0_sum > 0.0) != 0)) {
__pyx_t_23 = (__pyx_v_I0_sum / __pyx_v_W0_sum);
} else {
__pyx_t_23 = 1.0;
}
__pyx_t_6 = __pyx_v_j;
__pyx_t_5 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v__I0.data + __pyx_t_6 * __pyx_v__I0.strides[0]) )) + __pyx_t_5)) )) = __pyx_t_23;
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
if (((__pyx_v_W0_sum > 0.0) != 0)) {
__pyx_t_23 = (__pyx_v_I0_sum / __pyx_v_W0_sum);
} else {
__pyx_t_23 = 1.0;
}
__pyx_t_6 = __pyx_v_j;
__pyx_t_5 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v__I0.data + __pyx_t_6 * __pyx_v__I0.strides[0]) )) + __pyx_t_5)) )) = __pyx_t_23;
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
if (((__pyx_v_W0_sum > 0.0) != 0)) {
__pyx_t_23 = (__pyx_v_I0_sum / __pyx_v_W0_sum);
} else {
__pyx_t_23 = 1.0;
}
__pyx_t_6 = __pyx_v_j;
__pyx_t_5 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v__I0.data + __pyx_t_6 * __pyx_v__I0.strides[0]) )) + __pyx_t_5)) )) = __pyx_t_23;
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
if (((__pyx_v_W0_sum > 0.0) != 0)) {
__pyx_t_23 = (__pyx_v_I0_sum / __pyx_v_W0_sum);
} else {
__pyx_t_23 = 1.0;
}
__pyx_t_6 = __pyx_v_j;
__pyx_t_5 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v__I0.data + __pyx_t_6 * __pyx_v__I0.strides[0]) )) + __pyx_t_5)) )) = __pyx_t_23;
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
0232:
+0233: if return_nm0:
__pyx_t_1 = (__pyx_v_return_nm0 != 0);
if (__pyx_t_1) {
/* … */
}
/* … */
__pyx_t_1 = (__pyx_v_return_nm0 != 0);
if (__pyx_t_1) {
/* … */
}
/* … */
__pyx_t_1 = (__pyx_v_return_nm0 != 0);
if (__pyx_t_1) {
/* … */
}
/* … */
__pyx_t_1 = (__pyx_v_return_nm0 != 0);
if (__pyx_t_1) {
/* … */
}
+0234: return I0, <int>n0, <int>m0
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = __Pyx_PyInt_From_int(((int)__pyx_v_n0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyInt_From_int(((int)__pyx_v_m0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_24 = PyTuple_New(3); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_24); __Pyx_INCREF(((PyObject *)__pyx_v_I0)); __Pyx_GIVEREF(((PyObject *)__pyx_v_I0)); PyTuple_SET_ITEM(__pyx_t_24, 0, ((PyObject *)__pyx_v_I0)); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_24, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_24, 2, __pyx_t_3); __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_r = __pyx_t_24; __pyx_t_24 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __pyx_t_4 = __Pyx_PyInt_From_int(((int)__pyx_v_n0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyInt_From_int(((int)__pyx_v_m0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_24 = PyTuple_New(3); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_24); __Pyx_INCREF(((PyObject *)__pyx_v_I0)); __Pyx_GIVEREF(((PyObject *)__pyx_v_I0)); PyTuple_SET_ITEM(__pyx_t_24, 0, ((PyObject *)__pyx_v_I0)); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_24, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_24, 2, __pyx_t_3); __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_r = __pyx_t_24; __pyx_t_24 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __pyx_t_4 = __Pyx_PyInt_From_int(((int)__pyx_v_n0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyInt_From_int(((int)__pyx_v_m0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_24 = PyTuple_New(3); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_24); __Pyx_INCREF(((PyObject *)__pyx_v_I0)); __Pyx_GIVEREF(((PyObject *)__pyx_v_I0)); PyTuple_SET_ITEM(__pyx_t_24, 0, ((PyObject *)__pyx_v_I0)); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_24, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_24, 2, __pyx_t_3); __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_r = __pyx_t_24; __pyx_t_24 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __pyx_t_4 = __Pyx_PyInt_From_int(((int)__pyx_v_n0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyInt_From_int(((int)__pyx_v_m0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_24 = PyTuple_New(3); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_24); __Pyx_INCREF(((PyObject *)__pyx_v_I0)); __Pyx_GIVEREF(((PyObject *)__pyx_v_I0)); PyTuple_SET_ITEM(__pyx_t_24, 0, ((PyObject *)__pyx_v_I0)); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_24, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_24, 2, __pyx_t_3); __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_r = __pyx_t_24; __pyx_t_24 = 0; goto __pyx_L0;
0235: else:
+0236: return I0
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(((PyObject *)__pyx_v_I0));
__pyx_r = ((PyObject *)__pyx_v_I0);
goto __pyx_L0;
}
/* … */
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(((PyObject *)__pyx_v_I0));
__pyx_r = ((PyObject *)__pyx_v_I0);
goto __pyx_L0;
}
/* … */
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(((PyObject *)__pyx_v_I0));
__pyx_r = ((PyObject *)__pyx_v_I0);
goto __pyx_L0;
}
/* … */
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(((PyObject *)__pyx_v_I0));
__pyx_r = ((PyObject *)__pyx_v_I0);
goto __pyx_L0;
}
0237:
+0238: cdef void LOWESS_frame_1d(float_t[:, ::1] W_sum, float_t[:, :, ::1] M_mat, float_t[:, :, ::1] I0_mat,
static void __pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_LOWESS_frame_1d(__Pyx_memviewslice __pyx_v_W_sum, __Pyx_memviewslice __pyx_v_M_mat, __Pyx_memviewslice __pyx_v_I0_mat, __Pyx_memviewslice __pyx_v_W0_mat, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float64_t __pyx_v_dj, double __pyx_v_ds_x, double __pyx_v_h) {
int __pyx_v_X;
int __pyx_v_X0;
int __pyx_v_k;
int __pyx_v_kk;
int __pyx_v_k0;
int __pyx_v_kk0;
int __pyx_v_kk1;
int __pyx_v_dn;
double __pyx_v_x;
double __pyx_v_r;
double __pyx_v_w;
/* … */
/* function exit code */
}
static void __pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_LOWESS_frame_1d(__Pyx_memviewslice __pyx_v_W_sum, __Pyx_memviewslice __pyx_v_M_mat, __Pyx_memviewslice __pyx_v_I0_mat, __Pyx_memviewslice __pyx_v_W0_mat, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float64_t __pyx_v_dj, double __pyx_v_ds_x, double __pyx_v_h) {
int __pyx_v_X;
int __pyx_v_X0;
int __pyx_v_k;
int __pyx_v_kk;
int __pyx_v_k0;
int __pyx_v_kk0;
int __pyx_v_kk1;
int __pyx_v_dn;
double __pyx_v_x;
double __pyx_v_r;
double __pyx_v_w;
/* … */
/* function exit code */
}
static void __pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_LOWESS_frame_1d(__Pyx_memviewslice __pyx_v_W_sum, __Pyx_memviewslice __pyx_v_M_mat, __Pyx_memviewslice __pyx_v_I0_mat, __Pyx_memviewslice __pyx_v_W0_mat, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float32_t __pyx_v_dj, double __pyx_v_ds_x, double __pyx_v_h) {
int __pyx_v_X;
int __pyx_v_X0;
int __pyx_v_k;
int __pyx_v_kk;
int __pyx_v_k0;
int __pyx_v_kk0;
int __pyx_v_kk1;
int __pyx_v_dn;
double __pyx_v_x;
double __pyx_v_r;
double __pyx_v_w;
/* … */
/* function exit code */
}
static void __pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_LOWESS_frame_1d(__Pyx_memviewslice __pyx_v_W_sum, __Pyx_memviewslice __pyx_v_M_mat, __Pyx_memviewslice __pyx_v_I0_mat, __Pyx_memviewslice __pyx_v_W0_mat, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float32_t __pyx_v_dj, double __pyx_v_ds_x, double __pyx_v_h) {
int __pyx_v_X;
int __pyx_v_X0;
int __pyx_v_k;
int __pyx_v_kk;
int __pyx_v_k0;
int __pyx_v_kk0;
int __pyx_v_kk1;
int __pyx_v_dn;
double __pyx_v_x;
double __pyx_v_r;
double __pyx_v_w;
/* … */
/* function exit code */
}
0239: float_t[:, :, ::1] W0_mat, uint_t[:, ::1] I_n, float_t[:, ::1] W,
0240: float_t[:, :, ::1] u, float_t dj, double ds_x, double h) nogil:
+0241: cdef int X = I_n.shape[1], X0 = W_sum.shape[1]
__pyx_v_X = (__pyx_v_I_n.shape[1]); __pyx_v_X0 = (__pyx_v_W_sum.shape[1]); /* … */ __pyx_v_X = (__pyx_v_I_n.shape[1]); __pyx_v_X0 = (__pyx_v_W_sum.shape[1]); /* … */ __pyx_v_X = (__pyx_v_I_n.shape[1]); __pyx_v_X0 = (__pyx_v_W_sum.shape[1]); /* … */ __pyx_v_X = (__pyx_v_I_n.shape[1]); __pyx_v_X0 = (__pyx_v_W_sum.shape[1]);
0242: cdef int k, kk, j0, k0, kk0, kk1
+0243: cdef int dn = <int>ceil((4.0 * h) / ds_x)
__pyx_v_dn = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_x))); /* … */ __pyx_v_dn = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_x))); /* … */ __pyx_v_dn = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_x))); /* … */ __pyx_v_dn = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_x)));
0244: cdef double x, r, w
0245:
+0246: for k in range(X):
__pyx_t_1 = __pyx_v_X;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_k = __pyx_t_3;
/* … */
__pyx_t_1 = __pyx_v_X;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_k = __pyx_t_3;
/* … */
__pyx_t_1 = __pyx_v_X;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_k = __pyx_t_3;
/* … */
__pyx_t_1 = __pyx_v_X;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_k = __pyx_t_3;
+0247: x = u[1, 0, k] - dj
__pyx_t_4 = 1;
__pyx_t_5 = 0;
__pyx_t_6 = __pyx_v_k;
__pyx_v_x = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_4 * __pyx_v_u.strides[0]) ) + __pyx_t_5 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) ))) - __pyx_v_dj);
/* … */
__pyx_t_4 = 1;
__pyx_t_5 = 0;
__pyx_t_6 = __pyx_v_k;
__pyx_v_x = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_4 * __pyx_v_u.strides[0]) ) + __pyx_t_5 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) ))) - __pyx_v_dj);
/* … */
__pyx_t_4 = 1;
__pyx_t_5 = 0;
__pyx_t_6 = __pyx_v_k;
__pyx_v_x = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_4 * __pyx_v_u.strides[0]) ) + __pyx_t_5 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) ))) - __pyx_v_dj);
/* … */
__pyx_t_4 = 1;
__pyx_t_5 = 0;
__pyx_t_6 = __pyx_v_k;
__pyx_v_x = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_4 * __pyx_v_u.strides[0]) ) + __pyx_t_5 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) ))) - __pyx_v_dj);
+0248: k0 = <int>(x / ds_x) + 1
__pyx_v_k0 = (((int)(__pyx_v_x / __pyx_v_ds_x)) + 1);
/* … */
__pyx_v_k0 = (((int)(__pyx_v_x / __pyx_v_ds_x)) + 1);
/* … */
__pyx_v_k0 = (((int)(__pyx_v_x / __pyx_v_ds_x)) + 1);
/* … */
__pyx_v_k0 = (((int)(__pyx_v_x / __pyx_v_ds_x)) + 1);
0249:
+0250: kk0 = k0 - dn if k0 - dn > 0 else 0
if ((((__pyx_v_k0 - __pyx_v_dn) > 0) != 0)) {
__pyx_t_7 = (__pyx_v_k0 - __pyx_v_dn);
} else {
__pyx_t_7 = 0;
}
__pyx_v_kk0 = __pyx_t_7;
/* … */
if ((((__pyx_v_k0 - __pyx_v_dn) > 0) != 0)) {
__pyx_t_7 = (__pyx_v_k0 - __pyx_v_dn);
} else {
__pyx_t_7 = 0;
}
__pyx_v_kk0 = __pyx_t_7;
/* … */
if ((((__pyx_v_k0 - __pyx_v_dn) > 0) != 0)) {
__pyx_t_7 = (__pyx_v_k0 - __pyx_v_dn);
} else {
__pyx_t_7 = 0;
}
__pyx_v_kk0 = __pyx_t_7;
/* … */
if ((((__pyx_v_k0 - __pyx_v_dn) > 0) != 0)) {
__pyx_t_7 = (__pyx_v_k0 - __pyx_v_dn);
} else {
__pyx_t_7 = 0;
}
__pyx_v_kk0 = __pyx_t_7;
+0251: kk1 = k0 + dn if k0 + dn < X0 else X0
if ((((__pyx_v_k0 + __pyx_v_dn) < __pyx_v_X0) != 0)) {
__pyx_t_7 = (__pyx_v_k0 + __pyx_v_dn);
} else {
__pyx_t_7 = __pyx_v_X0;
}
__pyx_v_kk1 = __pyx_t_7;
/* … */
if ((((__pyx_v_k0 + __pyx_v_dn) < __pyx_v_X0) != 0)) {
__pyx_t_7 = (__pyx_v_k0 + __pyx_v_dn);
} else {
__pyx_t_7 = __pyx_v_X0;
}
__pyx_v_kk1 = __pyx_t_7;
/* … */
if ((((__pyx_v_k0 + __pyx_v_dn) < __pyx_v_X0) != 0)) {
__pyx_t_7 = (__pyx_v_k0 + __pyx_v_dn);
} else {
__pyx_t_7 = __pyx_v_X0;
}
__pyx_v_kk1 = __pyx_t_7;
/* … */
if ((((__pyx_v_k0 + __pyx_v_dn) < __pyx_v_X0) != 0)) {
__pyx_t_7 = (__pyx_v_k0 + __pyx_v_dn);
} else {
__pyx_t_7 = __pyx_v_X0;
}
__pyx_v_kk1 = __pyx_t_7;
0252:
+0253: for kk in range(kk0, kk1):
__pyx_t_7 = __pyx_v_kk1;
__pyx_t_8 = __pyx_t_7;
for (__pyx_t_9 = __pyx_v_kk0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
__pyx_v_kk = __pyx_t_9;
/* … */
__pyx_t_7 = __pyx_v_kk1;
__pyx_t_8 = __pyx_t_7;
for (__pyx_t_9 = __pyx_v_kk0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
__pyx_v_kk = __pyx_t_9;
/* … */
__pyx_t_7 = __pyx_v_kk1;
__pyx_t_8 = __pyx_t_7;
for (__pyx_t_9 = __pyx_v_kk0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
__pyx_v_kk = __pyx_t_9;
/* … */
__pyx_t_7 = __pyx_v_kk1;
__pyx_t_8 = __pyx_t_7;
for (__pyx_t_9 = __pyx_v_kk0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
__pyx_v_kk = __pyx_t_9;
+0254: r = rbf((ds_x * kk - x) * (ds_x * kk - x), h)
__pyx_v_r = __pyx_f_6pyrost_3bin_6pyrost_rbf((((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x) * ((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x)), __pyx_v_h);
/* … */
__pyx_v_r = __pyx_f_6pyrost_3bin_6pyrost_rbf((((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x) * ((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x)), __pyx_v_h);
/* … */
__pyx_v_r = __pyx_f_6pyrost_3bin_6pyrost_rbf((((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x) * ((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x)), __pyx_v_h);
/* … */
__pyx_v_r = __pyx_f_6pyrost_3bin_6pyrost_rbf((((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x) * ((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x)), __pyx_v_h);
+0255: W_sum[0, kk] += r
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_kk;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W_sum.data + __pyx_t_6 * __pyx_v_W_sum.strides[0]) )) + __pyx_t_5)) )) += __pyx_v_r;
/* … */
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_kk;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W_sum.data + __pyx_t_6 * __pyx_v_W_sum.strides[0]) )) + __pyx_t_5)) )) += __pyx_v_r;
/* … */
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_kk;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W_sum.data + __pyx_t_6 * __pyx_v_W_sum.strides[0]) )) + __pyx_t_5)) )) += __pyx_v_r;
/* … */
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_kk;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W_sum.data + __pyx_t_6 * __pyx_v_W_sum.strides[0]) )) + __pyx_t_5)) )) += __pyx_v_r;
+0256: w = r / W_sum[0, kk]
__pyx_t_5 = 0;
__pyx_t_6 = __pyx_v_kk;
__pyx_v_w = (((__pyx_t_5numpy_float64_t)__pyx_v_r) / (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W_sum.data + __pyx_t_5 * __pyx_v_W_sum.strides[0]) )) + __pyx_t_6)) ))));
/* … */
__pyx_t_5 = 0;
__pyx_t_6 = __pyx_v_kk;
__pyx_v_w = (((__pyx_t_5numpy_float64_t)__pyx_v_r) / (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W_sum.data + __pyx_t_5 * __pyx_v_W_sum.strides[0]) )) + __pyx_t_6)) ))));
/* … */
__pyx_t_5 = 0;
__pyx_t_6 = __pyx_v_kk;
__pyx_v_w = (__pyx_v_r / ((double)(*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W_sum.data + __pyx_t_5 * __pyx_v_W_sum.strides[0]) )) + __pyx_t_6)) )))));
/* … */
__pyx_t_5 = 0;
__pyx_t_6 = __pyx_v_kk;
__pyx_v_w = (__pyx_v_r / ((double)(*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W_sum.data + __pyx_t_5 * __pyx_v_W_sum.strides[0]) )) + __pyx_t_6)) )))));
0257:
+0258: M_mat[0, kk, 1] += w * (x - M_mat[0, kk, 1])
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_kk;
__pyx_t_4 = 1;
__pyx_t_10 = 0;
__pyx_t_11 = __pyx_v_kk;
__pyx_t_12 = 1;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_10 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_11 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_12)) )) += (__pyx_v_w * (__pyx_v_x - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_6 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_5 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_4)) )))));
/* … */
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_kk;
__pyx_t_4 = 1;
__pyx_t_10 = 0;
__pyx_t_11 = __pyx_v_kk;
__pyx_t_12 = 1;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_10 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_11 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_12)) )) += (__pyx_v_w * (__pyx_v_x - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_6 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_5 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_4)) )))));
/* … */
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_kk;
__pyx_t_4 = 1;
__pyx_t_10 = 0;
__pyx_t_11 = __pyx_v_kk;
__pyx_t_12 = 1;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_10 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_11 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_12)) )) += (__pyx_v_w * (__pyx_v_x - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_6 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_5 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_4)) )))));
/* … */
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_kk;
__pyx_t_4 = 1;
__pyx_t_10 = 0;
__pyx_t_11 = __pyx_v_kk;
__pyx_t_12 = 1;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_10 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_11 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_12)) )) += (__pyx_v_w * (__pyx_v_x - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_6 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_5 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_4)) )))));
+0259: M_mat[0, kk, 3] += w * (x * x - M_mat[0, kk, 3])
__pyx_t_4 = 0;
__pyx_t_5 = __pyx_v_kk;
__pyx_t_6 = 3;
__pyx_t_12 = 0;
__pyx_t_11 = __pyx_v_kk;
__pyx_t_10 = 3;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_12 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_11 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_10)) )) += (__pyx_v_w * ((__pyx_v_x * __pyx_v_x) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_4 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_5 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_6)) )))));
/* … */
__pyx_t_4 = 0;
__pyx_t_5 = __pyx_v_kk;
__pyx_t_6 = 3;
__pyx_t_12 = 0;
__pyx_t_11 = __pyx_v_kk;
__pyx_t_10 = 3;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_12 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_11 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_10)) )) += (__pyx_v_w * ((__pyx_v_x * __pyx_v_x) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_4 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_5 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_6)) )))));
/* … */
__pyx_t_4 = 0;
__pyx_t_5 = __pyx_v_kk;
__pyx_t_6 = 3;
__pyx_t_12 = 0;
__pyx_t_11 = __pyx_v_kk;
__pyx_t_10 = 3;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_12 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_11 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_10)) )) += (__pyx_v_w * ((__pyx_v_x * __pyx_v_x) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_4 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_5 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_6)) )))));
/* … */
__pyx_t_4 = 0;
__pyx_t_5 = __pyx_v_kk;
__pyx_t_6 = 3;
__pyx_t_12 = 0;
__pyx_t_11 = __pyx_v_kk;
__pyx_t_10 = 3;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_12 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_11 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_10)) )) += (__pyx_v_w * ((__pyx_v_x * __pyx_v_x) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_4 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_5 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_6)) )))));
0260:
+0261: I0_mat[0, kk, 0] += w * (I_n[0, k] * W[0, k] - I0_mat[0, kk, 0])
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_k;
__pyx_t_4 = 0;
__pyx_t_10 = __pyx_v_k;
__pyx_t_11 = 0;
__pyx_t_12 = __pyx_v_kk;
__pyx_t_13 = 0;
__pyx_t_14 = 0;
__pyx_t_15 = __pyx_v_kk;
__pyx_t_16 = 0;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_14 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_15 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_16)) )) += (__pyx_v_w * (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_6 * __pyx_v_I_n.strides[0]) )) + __pyx_t_5)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_4 * __pyx_v_W.strides[0]) )) + __pyx_t_10)) )))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_11 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_12 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_13)) )))));
/* … */
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_k;
__pyx_t_4 = 0;
__pyx_t_10 = __pyx_v_k;
__pyx_t_11 = 0;
__pyx_t_12 = __pyx_v_kk;
__pyx_t_13 = 0;
__pyx_t_14 = 0;
__pyx_t_15 = __pyx_v_kk;
__pyx_t_16 = 0;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_14 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_15 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_16)) )) += (__pyx_v_w * (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_6 * __pyx_v_I_n.strides[0]) )) + __pyx_t_5)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_4 * __pyx_v_W.strides[0]) )) + __pyx_t_10)) )))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_11 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_12 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_13)) )))));
/* … */
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_k;
__pyx_t_4 = 0;
__pyx_t_10 = __pyx_v_k;
__pyx_t_11 = 0;
__pyx_t_12 = __pyx_v_kk;
__pyx_t_13 = 0;
__pyx_t_14 = 0;
__pyx_t_15 = __pyx_v_kk;
__pyx_t_16 = 0;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_14 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_15 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_16)) )) += (__pyx_v_w * (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_6 * __pyx_v_I_n.strides[0]) )) + __pyx_t_5)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_4 * __pyx_v_W.strides[0]) )) + __pyx_t_10)) )))) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_11 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_12 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_13)) )))));
/* … */
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_k;
__pyx_t_4 = 0;
__pyx_t_10 = __pyx_v_k;
__pyx_t_11 = 0;
__pyx_t_12 = __pyx_v_kk;
__pyx_t_13 = 0;
__pyx_t_14 = 0;
__pyx_t_15 = __pyx_v_kk;
__pyx_t_16 = 0;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_14 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_15 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_16)) )) += (__pyx_v_w * (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_6 * __pyx_v_I_n.strides[0]) )) + __pyx_t_5)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_4 * __pyx_v_W.strides[0]) )) + __pyx_t_10)) )))) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_11 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_12 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_13)) )))));
+0262: I0_mat[0, kk, 2] += w * (I_n[0, k] * W[0, k] * x - I0_mat[0, kk, 2])
__pyx_t_13 = 0;
__pyx_t_12 = __pyx_v_k;
__pyx_t_11 = 0;
__pyx_t_10 = __pyx_v_k;
__pyx_t_4 = 0;
__pyx_t_5 = __pyx_v_kk;
__pyx_t_6 = 2;
__pyx_t_16 = 0;
__pyx_t_15 = __pyx_v_kk;
__pyx_t_14 = 2;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_16 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_15 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_14)) )) += (__pyx_v_w * ((((*((__pyx_t_5numpy_uint64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_13 * __pyx_v_I_n.strides[0]) )) + __pyx_t_12)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_11 * __pyx_v_W.strides[0]) )) + __pyx_t_10)) )))) * __pyx_v_x) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_4 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_5 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_6)) )))));
/* … */
__pyx_t_13 = 0;
__pyx_t_12 = __pyx_v_k;
__pyx_t_11 = 0;
__pyx_t_10 = __pyx_v_k;
__pyx_t_4 = 0;
__pyx_t_5 = __pyx_v_kk;
__pyx_t_6 = 2;
__pyx_t_16 = 0;
__pyx_t_15 = __pyx_v_kk;
__pyx_t_14 = 2;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_16 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_15 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_14)) )) += (__pyx_v_w * ((((*((__pyx_t_5numpy_uint32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_13 * __pyx_v_I_n.strides[0]) )) + __pyx_t_12)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_11 * __pyx_v_W.strides[0]) )) + __pyx_t_10)) )))) * __pyx_v_x) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_4 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_5 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_6)) )))));
/* … */
__pyx_t_13 = 0;
__pyx_t_12 = __pyx_v_k;
__pyx_t_11 = 0;
__pyx_t_10 = __pyx_v_k;
__pyx_t_4 = 0;
__pyx_t_5 = __pyx_v_kk;
__pyx_t_6 = 2;
__pyx_t_16 = 0;
__pyx_t_15 = __pyx_v_kk;
__pyx_t_14 = 2;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_16 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_15 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_14)) )) += (__pyx_v_w * ((((*((__pyx_t_5numpy_uint64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_13 * __pyx_v_I_n.strides[0]) )) + __pyx_t_12)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_11 * __pyx_v_W.strides[0]) )) + __pyx_t_10)) )))) * __pyx_v_x) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_4 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_5 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_6)) )))));
/* … */
__pyx_t_13 = 0;
__pyx_t_12 = __pyx_v_k;
__pyx_t_11 = 0;
__pyx_t_10 = __pyx_v_k;
__pyx_t_4 = 0;
__pyx_t_5 = __pyx_v_kk;
__pyx_t_6 = 2;
__pyx_t_16 = 0;
__pyx_t_15 = __pyx_v_kk;
__pyx_t_14 = 2;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_16 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_15 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_14)) )) += (__pyx_v_w * ((((*((__pyx_t_5numpy_uint32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_13 * __pyx_v_I_n.strides[0]) )) + __pyx_t_12)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_11 * __pyx_v_W.strides[0]) )) + __pyx_t_10)) )))) * __pyx_v_x) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_4 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_5 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_6)) )))));
0263:
+0264: W0_mat[0, kk, 0] += w * (W[0, k] * W[0, k] - W0_mat[0, kk, 0])
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_k;
__pyx_t_4 = 0;
__pyx_t_10 = __pyx_v_k;
__pyx_t_11 = 0;
__pyx_t_12 = __pyx_v_kk;
__pyx_t_13 = 0;
__pyx_t_14 = 0;
__pyx_t_15 = __pyx_v_kk;
__pyx_t_16 = 0;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_14 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_15 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_16)) )) += (__pyx_v_w * (((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_6 * __pyx_v_W.strides[0]) )) + __pyx_t_5)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_4 * __pyx_v_W.strides[0]) )) + __pyx_t_10)) )))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_11 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_12 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_13)) )))));
/* … */
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_k;
__pyx_t_4 = 0;
__pyx_t_10 = __pyx_v_k;
__pyx_t_11 = 0;
__pyx_t_12 = __pyx_v_kk;
__pyx_t_13 = 0;
__pyx_t_14 = 0;
__pyx_t_15 = __pyx_v_kk;
__pyx_t_16 = 0;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_14 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_15 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_16)) )) += (__pyx_v_w * (((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_6 * __pyx_v_W.strides[0]) )) + __pyx_t_5)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_4 * __pyx_v_W.strides[0]) )) + __pyx_t_10)) )))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_11 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_12 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_13)) )))));
/* … */
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_k;
__pyx_t_4 = 0;
__pyx_t_10 = __pyx_v_k;
__pyx_t_11 = 0;
__pyx_t_12 = __pyx_v_kk;
__pyx_t_13 = 0;
__pyx_t_14 = 0;
__pyx_t_15 = __pyx_v_kk;
__pyx_t_16 = 0;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_14 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_15 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_16)) )) += (__pyx_v_w * (((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_6 * __pyx_v_W.strides[0]) )) + __pyx_t_5)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_4 * __pyx_v_W.strides[0]) )) + __pyx_t_10)) )))) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_11 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_12 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_13)) )))));
/* … */
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_k;
__pyx_t_4 = 0;
__pyx_t_10 = __pyx_v_k;
__pyx_t_11 = 0;
__pyx_t_12 = __pyx_v_kk;
__pyx_t_13 = 0;
__pyx_t_14 = 0;
__pyx_t_15 = __pyx_v_kk;
__pyx_t_16 = 0;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_14 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_15 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_16)) )) += (__pyx_v_w * (((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_6 * __pyx_v_W.strides[0]) )) + __pyx_t_5)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_4 * __pyx_v_W.strides[0]) )) + __pyx_t_10)) )))) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_11 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_12 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_13)) )))));
+0265: W0_mat[0, kk, 2] += w * (W[0, k] * W[0, k] * x - W0_mat[0, kk, 2])
__pyx_t_13 = 0;
__pyx_t_12 = __pyx_v_k;
__pyx_t_11 = 0;
__pyx_t_10 = __pyx_v_k;
__pyx_t_4 = 0;
__pyx_t_5 = __pyx_v_kk;
__pyx_t_6 = 2;
__pyx_t_16 = 0;
__pyx_t_15 = __pyx_v_kk;
__pyx_t_14 = 2;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_16 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_15 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_14)) )) += (__pyx_v_w * ((((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_13 * __pyx_v_W.strides[0]) )) + __pyx_t_12)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_11 * __pyx_v_W.strides[0]) )) + __pyx_t_10)) )))) * __pyx_v_x) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_4 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_5 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_6)) )))));
}
}
/* … */
__pyx_t_13 = 0;
__pyx_t_12 = __pyx_v_k;
__pyx_t_11 = 0;
__pyx_t_10 = __pyx_v_k;
__pyx_t_4 = 0;
__pyx_t_5 = __pyx_v_kk;
__pyx_t_6 = 2;
__pyx_t_16 = 0;
__pyx_t_15 = __pyx_v_kk;
__pyx_t_14 = 2;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_16 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_15 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_14)) )) += (__pyx_v_w * ((((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_13 * __pyx_v_W.strides[0]) )) + __pyx_t_12)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_11 * __pyx_v_W.strides[0]) )) + __pyx_t_10)) )))) * __pyx_v_x) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_4 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_5 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_6)) )))));
}
}
/* … */
__pyx_t_13 = 0;
__pyx_t_12 = __pyx_v_k;
__pyx_t_11 = 0;
__pyx_t_10 = __pyx_v_k;
__pyx_t_4 = 0;
__pyx_t_5 = __pyx_v_kk;
__pyx_t_6 = 2;
__pyx_t_16 = 0;
__pyx_t_15 = __pyx_v_kk;
__pyx_t_14 = 2;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_16 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_15 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_14)) )) += (__pyx_v_w * ((((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_13 * __pyx_v_W.strides[0]) )) + __pyx_t_12)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_11 * __pyx_v_W.strides[0]) )) + __pyx_t_10)) )))) * __pyx_v_x) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_4 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_5 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_6)) )))));
}
}
/* … */
__pyx_t_13 = 0;
__pyx_t_12 = __pyx_v_k;
__pyx_t_11 = 0;
__pyx_t_10 = __pyx_v_k;
__pyx_t_4 = 0;
__pyx_t_5 = __pyx_v_kk;
__pyx_t_6 = 2;
__pyx_t_16 = 0;
__pyx_t_15 = __pyx_v_kk;
__pyx_t_14 = 2;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_16 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_15 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_14)) )) += (__pyx_v_w * ((((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_13 * __pyx_v_W.strides[0]) )) + __pyx_t_12)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_11 * __pyx_v_W.strides[0]) )) + __pyx_t_10)) )))) * __pyx_v_x) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_4 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_5 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_6)) )))));
}
}
0266:
+0267: cdef void LOWESS_frame_2d(float_t[:, ::1] W_sum, float_t[:, :, ::1] M_mat, float_t[:, :, ::1] I0_mat,
static void __pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_LOWESS_frame_2d(__Pyx_memviewslice __pyx_v_W_sum, __Pyx_memviewslice __pyx_v_M_mat, __Pyx_memviewslice __pyx_v_I0_mat, __Pyx_memviewslice __pyx_v_W0_mat, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float64_t __pyx_v_di, __pyx_t_5numpy_float64_t __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h) {
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_j;
int __pyx_v_k;
int __pyx_v_jj;
int __pyx_v_kk;
int __pyx_v_j0;
int __pyx_v_k0;
int __pyx_v_jj0;
int __pyx_v_jj1;
int __pyx_v_kk0;
int __pyx_v_kk1;
int __pyx_v_dn_y;
int __pyx_v_dn_x;
double __pyx_v_y;
double __pyx_v_x;
double __pyx_v_r;
double __pyx_v_w;
/* … */
/* function exit code */
}
static void __pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_LOWESS_frame_2d(__Pyx_memviewslice __pyx_v_W_sum, __Pyx_memviewslice __pyx_v_M_mat, __Pyx_memviewslice __pyx_v_I0_mat, __Pyx_memviewslice __pyx_v_W0_mat, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float64_t __pyx_v_di, __pyx_t_5numpy_float64_t __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h) {
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_j;
int __pyx_v_k;
int __pyx_v_jj;
int __pyx_v_kk;
int __pyx_v_j0;
int __pyx_v_k0;
int __pyx_v_jj0;
int __pyx_v_jj1;
int __pyx_v_kk0;
int __pyx_v_kk1;
int __pyx_v_dn_y;
int __pyx_v_dn_x;
double __pyx_v_y;
double __pyx_v_x;
double __pyx_v_r;
double __pyx_v_w;
/* … */
/* function exit code */
}
static void __pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_LOWESS_frame_2d(__Pyx_memviewslice __pyx_v_W_sum, __Pyx_memviewslice __pyx_v_M_mat, __Pyx_memviewslice __pyx_v_I0_mat, __Pyx_memviewslice __pyx_v_W0_mat, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float32_t __pyx_v_di, __pyx_t_5numpy_float32_t __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h) {
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_j;
int __pyx_v_k;
int __pyx_v_jj;
int __pyx_v_kk;
int __pyx_v_j0;
int __pyx_v_k0;
int __pyx_v_jj0;
int __pyx_v_jj1;
int __pyx_v_kk0;
int __pyx_v_kk1;
int __pyx_v_dn_y;
int __pyx_v_dn_x;
double __pyx_v_y;
double __pyx_v_x;
double __pyx_v_r;
double __pyx_v_w;
/* … */
/* function exit code */
}
static void __pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_LOWESS_frame_2d(__Pyx_memviewslice __pyx_v_W_sum, __Pyx_memviewslice __pyx_v_M_mat, __Pyx_memviewslice __pyx_v_I0_mat, __Pyx_memviewslice __pyx_v_W0_mat, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float32_t __pyx_v_di, __pyx_t_5numpy_float32_t __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h) {
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_j;
int __pyx_v_k;
int __pyx_v_jj;
int __pyx_v_kk;
int __pyx_v_j0;
int __pyx_v_k0;
int __pyx_v_jj0;
int __pyx_v_jj1;
int __pyx_v_kk0;
int __pyx_v_kk1;
int __pyx_v_dn_y;
int __pyx_v_dn_x;
double __pyx_v_y;
double __pyx_v_x;
double __pyx_v_r;
double __pyx_v_w;
/* … */
/* function exit code */
}
0268: float_t[:, :, ::1] W0_mat, uint_t[:, ::1] I_n, float_t[:, ::1] W,
0269: float_t[:, :, ::1] u, float_t di, float_t dj, double ds_y, double ds_x, double h) nogil:
+0270: cdef int Y = I_n.shape[0], X = I_n.shape[1], Y0 = W_sum.shape[0], X0 = W_sum.shape[1]
__pyx_v_Y = (__pyx_v_I_n.shape[0]); __pyx_v_X = (__pyx_v_I_n.shape[1]); __pyx_v_Y0 = (__pyx_v_W_sum.shape[0]); __pyx_v_X0 = (__pyx_v_W_sum.shape[1]); /* … */ __pyx_v_Y = (__pyx_v_I_n.shape[0]); __pyx_v_X = (__pyx_v_I_n.shape[1]); __pyx_v_Y0 = (__pyx_v_W_sum.shape[0]); __pyx_v_X0 = (__pyx_v_W_sum.shape[1]); /* … */ __pyx_v_Y = (__pyx_v_I_n.shape[0]); __pyx_v_X = (__pyx_v_I_n.shape[1]); __pyx_v_Y0 = (__pyx_v_W_sum.shape[0]); __pyx_v_X0 = (__pyx_v_W_sum.shape[1]); /* … */ __pyx_v_Y = (__pyx_v_I_n.shape[0]); __pyx_v_X = (__pyx_v_I_n.shape[1]); __pyx_v_Y0 = (__pyx_v_W_sum.shape[0]); __pyx_v_X0 = (__pyx_v_W_sum.shape[1]);
0271: cdef int j, k, jj, kk, j0, k0, jj0, jj1, kk0, kk1
+0272: cdef int dn_y = <int>ceil((4.0 * h) / ds_y), dn_x = <int>ceil((4.0 * h) / ds_x)
__pyx_v_dn_y = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_y))); __pyx_v_dn_x = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_x))); /* … */ __pyx_v_dn_y = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_y))); __pyx_v_dn_x = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_x))); /* … */ __pyx_v_dn_y = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_y))); __pyx_v_dn_x = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_x))); /* … */ __pyx_v_dn_y = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_y))); __pyx_v_dn_x = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_x)));
0273: cdef double y, x, r, w
0274:
+0275: for j in range(Y):
__pyx_t_1 = __pyx_v_Y;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_j = __pyx_t_3;
/* … */
__pyx_t_1 = __pyx_v_Y;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_j = __pyx_t_3;
/* … */
__pyx_t_1 = __pyx_v_Y;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_j = __pyx_t_3;
/* … */
__pyx_t_1 = __pyx_v_Y;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_j = __pyx_t_3;
+0276: for k in range(X):
__pyx_t_4 = __pyx_v_X;
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_k = __pyx_t_6;
/* … */
__pyx_t_4 = __pyx_v_X;
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_k = __pyx_t_6;
/* … */
__pyx_t_4 = __pyx_v_X;
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_k = __pyx_t_6;
/* … */
__pyx_t_4 = __pyx_v_X;
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_k = __pyx_t_6;
+0277: y = u[0, j, k] - di
__pyx_t_7 = 0;
__pyx_t_8 = __pyx_v_j;
__pyx_t_9 = __pyx_v_k;
__pyx_v_y = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_7 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_9)) ))) - __pyx_v_di);
/* … */
__pyx_t_7 = 0;
__pyx_t_8 = __pyx_v_j;
__pyx_t_9 = __pyx_v_k;
__pyx_v_y = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_7 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_9)) ))) - __pyx_v_di);
/* … */
__pyx_t_7 = 0;
__pyx_t_8 = __pyx_v_j;
__pyx_t_9 = __pyx_v_k;
__pyx_v_y = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_7 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_9)) ))) - __pyx_v_di);
/* … */
__pyx_t_7 = 0;
__pyx_t_8 = __pyx_v_j;
__pyx_t_9 = __pyx_v_k;
__pyx_v_y = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_7 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_9)) ))) - __pyx_v_di);
+0278: x = u[1, j, k] - dj
__pyx_t_9 = 1;
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_v_x = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_9 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) ))) - __pyx_v_dj);
/* … */
__pyx_t_9 = 1;
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_v_x = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_9 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) ))) - __pyx_v_dj);
/* … */
__pyx_t_9 = 1;
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_v_x = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_9 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) ))) - __pyx_v_dj);
/* … */
__pyx_t_9 = 1;
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_v_x = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_9 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) ))) - __pyx_v_dj);
+0279: j0 = <int>(y / ds_y) + 1
__pyx_v_j0 = (((int)(__pyx_v_y / __pyx_v_ds_y)) + 1);
/* … */
__pyx_v_j0 = (((int)(__pyx_v_y / __pyx_v_ds_y)) + 1);
/* … */
__pyx_v_j0 = (((int)(__pyx_v_y / __pyx_v_ds_y)) + 1);
/* … */
__pyx_v_j0 = (((int)(__pyx_v_y / __pyx_v_ds_y)) + 1);
+0280: k0 = <int>(x / ds_x) + 1
__pyx_v_k0 = (((int)(__pyx_v_x / __pyx_v_ds_x)) + 1);
/* … */
__pyx_v_k0 = (((int)(__pyx_v_x / __pyx_v_ds_x)) + 1);
/* … */
__pyx_v_k0 = (((int)(__pyx_v_x / __pyx_v_ds_x)) + 1);
/* … */
__pyx_v_k0 = (((int)(__pyx_v_x / __pyx_v_ds_x)) + 1);
0281:
+0282: jj0 = j0 - dn_y if j0 - dn_y > 0 else 0
if ((((__pyx_v_j0 - __pyx_v_dn_y) > 0) != 0)) {
__pyx_t_10 = (__pyx_v_j0 - __pyx_v_dn_y);
} else {
__pyx_t_10 = 0;
}
__pyx_v_jj0 = __pyx_t_10;
/* … */
if ((((__pyx_v_j0 - __pyx_v_dn_y) > 0) != 0)) {
__pyx_t_10 = (__pyx_v_j0 - __pyx_v_dn_y);
} else {
__pyx_t_10 = 0;
}
__pyx_v_jj0 = __pyx_t_10;
/* … */
if ((((__pyx_v_j0 - __pyx_v_dn_y) > 0) != 0)) {
__pyx_t_10 = (__pyx_v_j0 - __pyx_v_dn_y);
} else {
__pyx_t_10 = 0;
}
__pyx_v_jj0 = __pyx_t_10;
/* … */
if ((((__pyx_v_j0 - __pyx_v_dn_y) > 0) != 0)) {
__pyx_t_10 = (__pyx_v_j0 - __pyx_v_dn_y);
} else {
__pyx_t_10 = 0;
}
__pyx_v_jj0 = __pyx_t_10;
+0283: jj1 = j0 + dn_y if j0 + dn_y < Y0 else Y0
if ((((__pyx_v_j0 + __pyx_v_dn_y) < __pyx_v_Y0) != 0)) {
__pyx_t_10 = (__pyx_v_j0 + __pyx_v_dn_y);
} else {
__pyx_t_10 = __pyx_v_Y0;
}
__pyx_v_jj1 = __pyx_t_10;
/* … */
if ((((__pyx_v_j0 + __pyx_v_dn_y) < __pyx_v_Y0) != 0)) {
__pyx_t_10 = (__pyx_v_j0 + __pyx_v_dn_y);
} else {
__pyx_t_10 = __pyx_v_Y0;
}
__pyx_v_jj1 = __pyx_t_10;
/* … */
if ((((__pyx_v_j0 + __pyx_v_dn_y) < __pyx_v_Y0) != 0)) {
__pyx_t_10 = (__pyx_v_j0 + __pyx_v_dn_y);
} else {
__pyx_t_10 = __pyx_v_Y0;
}
__pyx_v_jj1 = __pyx_t_10;
/* … */
if ((((__pyx_v_j0 + __pyx_v_dn_y) < __pyx_v_Y0) != 0)) {
__pyx_t_10 = (__pyx_v_j0 + __pyx_v_dn_y);
} else {
__pyx_t_10 = __pyx_v_Y0;
}
__pyx_v_jj1 = __pyx_t_10;
+0284: kk0 = k0 - dn_x if k0 - dn_x > 0 else 0
if ((((__pyx_v_k0 - __pyx_v_dn_x) > 0) != 0)) {
__pyx_t_10 = (__pyx_v_k0 - __pyx_v_dn_x);
} else {
__pyx_t_10 = 0;
}
__pyx_v_kk0 = __pyx_t_10;
/* … */
if ((((__pyx_v_k0 - __pyx_v_dn_x) > 0) != 0)) {
__pyx_t_10 = (__pyx_v_k0 - __pyx_v_dn_x);
} else {
__pyx_t_10 = 0;
}
__pyx_v_kk0 = __pyx_t_10;
/* … */
if ((((__pyx_v_k0 - __pyx_v_dn_x) > 0) != 0)) {
__pyx_t_10 = (__pyx_v_k0 - __pyx_v_dn_x);
} else {
__pyx_t_10 = 0;
}
__pyx_v_kk0 = __pyx_t_10;
/* … */
if ((((__pyx_v_k0 - __pyx_v_dn_x) > 0) != 0)) {
__pyx_t_10 = (__pyx_v_k0 - __pyx_v_dn_x);
} else {
__pyx_t_10 = 0;
}
__pyx_v_kk0 = __pyx_t_10;
+0285: kk1 = k0 + dn_x if k0 + dn_x < X0 else X0
if ((((__pyx_v_k0 + __pyx_v_dn_x) < __pyx_v_X0) != 0)) {
__pyx_t_10 = (__pyx_v_k0 + __pyx_v_dn_x);
} else {
__pyx_t_10 = __pyx_v_X0;
}
__pyx_v_kk1 = __pyx_t_10;
/* … */
if ((((__pyx_v_k0 + __pyx_v_dn_x) < __pyx_v_X0) != 0)) {
__pyx_t_10 = (__pyx_v_k0 + __pyx_v_dn_x);
} else {
__pyx_t_10 = __pyx_v_X0;
}
__pyx_v_kk1 = __pyx_t_10;
/* … */
if ((((__pyx_v_k0 + __pyx_v_dn_x) < __pyx_v_X0) != 0)) {
__pyx_t_10 = (__pyx_v_k0 + __pyx_v_dn_x);
} else {
__pyx_t_10 = __pyx_v_X0;
}
__pyx_v_kk1 = __pyx_t_10;
/* … */
if ((((__pyx_v_k0 + __pyx_v_dn_x) < __pyx_v_X0) != 0)) {
__pyx_t_10 = (__pyx_v_k0 + __pyx_v_dn_x);
} else {
__pyx_t_10 = __pyx_v_X0;
}
__pyx_v_kk1 = __pyx_t_10;
0286:
+0287: for jj in range(jj0, jj1):
__pyx_t_10 = __pyx_v_jj1;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = __pyx_v_jj0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_jj = __pyx_t_12;
/* … */
__pyx_t_10 = __pyx_v_jj1;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = __pyx_v_jj0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_jj = __pyx_t_12;
/* … */
__pyx_t_10 = __pyx_v_jj1;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = __pyx_v_jj0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_jj = __pyx_t_12;
/* … */
__pyx_t_10 = __pyx_v_jj1;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = __pyx_v_jj0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_jj = __pyx_t_12;
+0288: for kk in range(kk0, kk1):
__pyx_t_13 = __pyx_v_kk1;
__pyx_t_14 = __pyx_t_13;
for (__pyx_t_15 = __pyx_v_kk0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
__pyx_v_kk = __pyx_t_15;
/* … */
__pyx_t_13 = __pyx_v_kk1;
__pyx_t_14 = __pyx_t_13;
for (__pyx_t_15 = __pyx_v_kk0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
__pyx_v_kk = __pyx_t_15;
/* … */
__pyx_t_13 = __pyx_v_kk1;
__pyx_t_14 = __pyx_t_13;
for (__pyx_t_15 = __pyx_v_kk0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
__pyx_v_kk = __pyx_t_15;
/* … */
__pyx_t_13 = __pyx_v_kk1;
__pyx_t_14 = __pyx_t_13;
for (__pyx_t_15 = __pyx_v_kk0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
__pyx_v_kk = __pyx_t_15;
+0289: r = rbf((ds_y * jj - y) * (ds_y * jj - y) + (ds_x * kk - x) * (ds_x * kk - x), h)
__pyx_v_r = __pyx_f_6pyrost_3bin_6pyrost_rbf(((((__pyx_v_ds_y * __pyx_v_jj) - __pyx_v_y) * ((__pyx_v_ds_y * __pyx_v_jj) - __pyx_v_y)) + (((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x) * ((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x))), __pyx_v_h);
/* … */
__pyx_v_r = __pyx_f_6pyrost_3bin_6pyrost_rbf(((((__pyx_v_ds_y * __pyx_v_jj) - __pyx_v_y) * ((__pyx_v_ds_y * __pyx_v_jj) - __pyx_v_y)) + (((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x) * ((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x))), __pyx_v_h);
/* … */
__pyx_v_r = __pyx_f_6pyrost_3bin_6pyrost_rbf(((((__pyx_v_ds_y * __pyx_v_jj) - __pyx_v_y) * ((__pyx_v_ds_y * __pyx_v_jj) - __pyx_v_y)) + (((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x) * ((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x))), __pyx_v_h);
/* … */
__pyx_v_r = __pyx_f_6pyrost_3bin_6pyrost_rbf(((((__pyx_v_ds_y * __pyx_v_jj) - __pyx_v_y) * ((__pyx_v_ds_y * __pyx_v_jj) - __pyx_v_y)) + (((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x) * ((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x))), __pyx_v_h);
+0290: W_sum[jj, kk] += r
__pyx_t_7 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W_sum.data + __pyx_t_7 * __pyx_v_W_sum.strides[0]) )) + __pyx_t_8)) )) += __pyx_v_r;
/* … */
__pyx_t_7 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W_sum.data + __pyx_t_7 * __pyx_v_W_sum.strides[0]) )) + __pyx_t_8)) )) += __pyx_v_r;
/* … */
__pyx_t_7 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W_sum.data + __pyx_t_7 * __pyx_v_W_sum.strides[0]) )) + __pyx_t_8)) )) += __pyx_v_r;
/* … */
__pyx_t_7 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W_sum.data + __pyx_t_7 * __pyx_v_W_sum.strides[0]) )) + __pyx_t_8)) )) += __pyx_v_r;
+0291: w = r / W_sum[jj, kk]
__pyx_t_8 = __pyx_v_jj;
__pyx_t_7 = __pyx_v_kk;
__pyx_v_w = (((__pyx_t_5numpy_float64_t)__pyx_v_r) / (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W_sum.data + __pyx_t_8 * __pyx_v_W_sum.strides[0]) )) + __pyx_t_7)) ))));
/* … */
__pyx_t_8 = __pyx_v_jj;
__pyx_t_7 = __pyx_v_kk;
__pyx_v_w = (((__pyx_t_5numpy_float64_t)__pyx_v_r) / (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W_sum.data + __pyx_t_8 * __pyx_v_W_sum.strides[0]) )) + __pyx_t_7)) ))));
/* … */
__pyx_t_8 = __pyx_v_jj;
__pyx_t_7 = __pyx_v_kk;
__pyx_v_w = (__pyx_v_r / ((double)(*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W_sum.data + __pyx_t_8 * __pyx_v_W_sum.strides[0]) )) + __pyx_t_7)) )))));
/* … */
__pyx_t_8 = __pyx_v_jj;
__pyx_t_7 = __pyx_v_kk;
__pyx_v_w = (__pyx_v_r / ((double)(*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W_sum.data + __pyx_t_8 * __pyx_v_W_sum.strides[0]) )) + __pyx_t_7)) )))));
0292:
+0293: M_mat[jj, kk, 0] += w * (y - M_mat[jj, kk, 0])
__pyx_t_7 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_9 = 0;
__pyx_t_16 = __pyx_v_jj;
__pyx_t_17 = __pyx_v_kk;
__pyx_t_18 = 0;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_16 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_17 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_18)) )) += (__pyx_v_w * (__pyx_v_y - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_7 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_9)) )))));
/* … */
__pyx_t_7 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_9 = 0;
__pyx_t_16 = __pyx_v_jj;
__pyx_t_17 = __pyx_v_kk;
__pyx_t_18 = 0;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_16 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_17 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_18)) )) += (__pyx_v_w * (__pyx_v_y - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_7 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_9)) )))));
/* … */
__pyx_t_7 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_9 = 0;
__pyx_t_16 = __pyx_v_jj;
__pyx_t_17 = __pyx_v_kk;
__pyx_t_18 = 0;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_16 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_17 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_18)) )) += (__pyx_v_w * (__pyx_v_y - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_7 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_9)) )))));
/* … */
__pyx_t_7 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_9 = 0;
__pyx_t_16 = __pyx_v_jj;
__pyx_t_17 = __pyx_v_kk;
__pyx_t_18 = 0;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_16 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_17 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_18)) )) += (__pyx_v_w * (__pyx_v_y - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_7 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_9)) )))));
+0294: M_mat[jj, kk, 1] += w * (x - M_mat[jj, kk, 1])
__pyx_t_9 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_7 = 1;
__pyx_t_18 = __pyx_v_jj;
__pyx_t_17 = __pyx_v_kk;
__pyx_t_16 = 1;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_18 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_17 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_16)) )) += (__pyx_v_w * (__pyx_v_x - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_9 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_7)) )))));
/* … */
__pyx_t_9 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_7 = 1;
__pyx_t_18 = __pyx_v_jj;
__pyx_t_17 = __pyx_v_kk;
__pyx_t_16 = 1;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_18 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_17 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_16)) )) += (__pyx_v_w * (__pyx_v_x - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_9 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_7)) )))));
/* … */
__pyx_t_9 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_7 = 1;
__pyx_t_18 = __pyx_v_jj;
__pyx_t_17 = __pyx_v_kk;
__pyx_t_16 = 1;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_18 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_17 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_16)) )) += (__pyx_v_w * (__pyx_v_x - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_9 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_7)) )))));
/* … */
__pyx_t_9 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_7 = 1;
__pyx_t_18 = __pyx_v_jj;
__pyx_t_17 = __pyx_v_kk;
__pyx_t_16 = 1;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_18 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_17 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_16)) )) += (__pyx_v_w * (__pyx_v_x - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_9 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_7)) )))));
+0295: M_mat[jj, kk, 2] += w * (y * y - M_mat[jj, kk, 2])
__pyx_t_7 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_9 = 2;
__pyx_t_16 = __pyx_v_jj;
__pyx_t_17 = __pyx_v_kk;
__pyx_t_18 = 2;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_16 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_17 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_18)) )) += (__pyx_v_w * ((__pyx_v_y * __pyx_v_y) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_7 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_9)) )))));
/* … */
__pyx_t_7 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_9 = 2;
__pyx_t_16 = __pyx_v_jj;
__pyx_t_17 = __pyx_v_kk;
__pyx_t_18 = 2;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_16 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_17 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_18)) )) += (__pyx_v_w * ((__pyx_v_y * __pyx_v_y) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_7 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_9)) )))));
/* … */
__pyx_t_7 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_9 = 2;
__pyx_t_16 = __pyx_v_jj;
__pyx_t_17 = __pyx_v_kk;
__pyx_t_18 = 2;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_16 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_17 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_18)) )) += (__pyx_v_w * ((__pyx_v_y * __pyx_v_y) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_7 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_9)) )))));
/* … */
__pyx_t_7 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_9 = 2;
__pyx_t_16 = __pyx_v_jj;
__pyx_t_17 = __pyx_v_kk;
__pyx_t_18 = 2;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_16 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_17 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_18)) )) += (__pyx_v_w * ((__pyx_v_y * __pyx_v_y) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_7 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_9)) )))));
+0296: M_mat[jj, kk, 3] += w * (x * x - M_mat[jj, kk, 3])
__pyx_t_9 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_7 = 3;
__pyx_t_18 = __pyx_v_jj;
__pyx_t_17 = __pyx_v_kk;
__pyx_t_16 = 3;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_18 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_17 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_16)) )) += (__pyx_v_w * ((__pyx_v_x * __pyx_v_x) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_9 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_7)) )))));
/* … */
__pyx_t_9 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_7 = 3;
__pyx_t_18 = __pyx_v_jj;
__pyx_t_17 = __pyx_v_kk;
__pyx_t_16 = 3;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_18 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_17 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_16)) )) += (__pyx_v_w * ((__pyx_v_x * __pyx_v_x) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_9 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_7)) )))));
/* … */
__pyx_t_9 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_7 = 3;
__pyx_t_18 = __pyx_v_jj;
__pyx_t_17 = __pyx_v_kk;
__pyx_t_16 = 3;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_18 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_17 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_16)) )) += (__pyx_v_w * ((__pyx_v_x * __pyx_v_x) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_9 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_7)) )))));
/* … */
__pyx_t_9 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_7 = 3;
__pyx_t_18 = __pyx_v_jj;
__pyx_t_17 = __pyx_v_kk;
__pyx_t_16 = 3;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_18 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_17 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_16)) )) += (__pyx_v_w * ((__pyx_v_x * __pyx_v_x) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_mat.data + __pyx_t_9 * __pyx_v_M_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_M_mat.strides[1]) )) + __pyx_t_7)) )))));
0297:
+0298: I0_mat[jj, kk, 0] += w * (I_n[j, k] * W[j, k] - I0_mat[jj, kk, 0])
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
__pyx_t_9 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = __pyx_v_jj;
__pyx_t_18 = __pyx_v_kk;
__pyx_t_19 = 0;
__pyx_t_20 = __pyx_v_jj;
__pyx_t_21 = __pyx_v_kk;
__pyx_t_22 = 0;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_20 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_21 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_22)) )) += (__pyx_v_w * (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_7 * __pyx_v_I_n.strides[0]) )) + __pyx_t_8)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_9 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_17 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_18 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_19)) )))));
/* … */
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
__pyx_t_9 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = __pyx_v_jj;
__pyx_t_18 = __pyx_v_kk;
__pyx_t_19 = 0;
__pyx_t_20 = __pyx_v_jj;
__pyx_t_21 = __pyx_v_kk;
__pyx_t_22 = 0;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_20 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_21 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_22)) )) += (__pyx_v_w * (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_7 * __pyx_v_I_n.strides[0]) )) + __pyx_t_8)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_9 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_17 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_18 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_19)) )))));
/* … */
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
__pyx_t_9 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = __pyx_v_jj;
__pyx_t_18 = __pyx_v_kk;
__pyx_t_19 = 0;
__pyx_t_20 = __pyx_v_jj;
__pyx_t_21 = __pyx_v_kk;
__pyx_t_22 = 0;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_20 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_21 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_22)) )) += (__pyx_v_w * (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_7 * __pyx_v_I_n.strides[0]) )) + __pyx_t_8)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_9 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_17 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_18 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_19)) )))));
/* … */
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
__pyx_t_9 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = __pyx_v_jj;
__pyx_t_18 = __pyx_v_kk;
__pyx_t_19 = 0;
__pyx_t_20 = __pyx_v_jj;
__pyx_t_21 = __pyx_v_kk;
__pyx_t_22 = 0;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_20 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_21 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_22)) )) += (__pyx_v_w * (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_7 * __pyx_v_I_n.strides[0]) )) + __pyx_t_8)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_9 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_17 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_18 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_19)) )))));
+0299: I0_mat[jj, kk, 1] += w * (I_n[j, k] * W[j, k] * y - I0_mat[jj, kk, 1])
__pyx_t_19 = __pyx_v_j;
__pyx_t_18 = __pyx_v_k;
__pyx_t_17 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_9 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_7 = 1;
__pyx_t_22 = __pyx_v_jj;
__pyx_t_21 = __pyx_v_kk;
__pyx_t_20 = 1;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_22 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_21 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_20)) )) += (__pyx_v_w * ((((*((__pyx_t_5numpy_uint64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_19 * __pyx_v_I_n.strides[0]) )) + __pyx_t_18)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_17 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) * __pyx_v_y) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_9 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_7)) )))));
/* … */
__pyx_t_19 = __pyx_v_j;
__pyx_t_18 = __pyx_v_k;
__pyx_t_17 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_9 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_7 = 1;
__pyx_t_22 = __pyx_v_jj;
__pyx_t_21 = __pyx_v_kk;
__pyx_t_20 = 1;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_22 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_21 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_20)) )) += (__pyx_v_w * ((((*((__pyx_t_5numpy_uint32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_19 * __pyx_v_I_n.strides[0]) )) + __pyx_t_18)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_17 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) * __pyx_v_y) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_9 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_7)) )))));
/* … */
__pyx_t_19 = __pyx_v_j;
__pyx_t_18 = __pyx_v_k;
__pyx_t_17 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_9 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_7 = 1;
__pyx_t_22 = __pyx_v_jj;
__pyx_t_21 = __pyx_v_kk;
__pyx_t_20 = 1;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_22 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_21 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_20)) )) += (__pyx_v_w * ((((*((__pyx_t_5numpy_uint64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_19 * __pyx_v_I_n.strides[0]) )) + __pyx_t_18)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_17 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) * __pyx_v_y) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_9 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_7)) )))));
/* … */
__pyx_t_19 = __pyx_v_j;
__pyx_t_18 = __pyx_v_k;
__pyx_t_17 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_9 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_7 = 1;
__pyx_t_22 = __pyx_v_jj;
__pyx_t_21 = __pyx_v_kk;
__pyx_t_20 = 1;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_22 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_21 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_20)) )) += (__pyx_v_w * ((((*((__pyx_t_5numpy_uint32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_19 * __pyx_v_I_n.strides[0]) )) + __pyx_t_18)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_17 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) * __pyx_v_y) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_9 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_7)) )))));
+0300: I0_mat[jj, kk, 2] += w * (I_n[j, k] * W[j, k] * x - I0_mat[jj, kk, 2])
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
__pyx_t_9 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = __pyx_v_jj;
__pyx_t_18 = __pyx_v_kk;
__pyx_t_19 = 2;
__pyx_t_20 = __pyx_v_jj;
__pyx_t_21 = __pyx_v_kk;
__pyx_t_22 = 2;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_20 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_21 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_22)) )) += (__pyx_v_w * ((((*((__pyx_t_5numpy_uint64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_7 * __pyx_v_I_n.strides[0]) )) + __pyx_t_8)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_9 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) * __pyx_v_x) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_17 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_18 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_19)) )))));
/* … */
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
__pyx_t_9 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = __pyx_v_jj;
__pyx_t_18 = __pyx_v_kk;
__pyx_t_19 = 2;
__pyx_t_20 = __pyx_v_jj;
__pyx_t_21 = __pyx_v_kk;
__pyx_t_22 = 2;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_20 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_21 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_22)) )) += (__pyx_v_w * ((((*((__pyx_t_5numpy_uint32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_7 * __pyx_v_I_n.strides[0]) )) + __pyx_t_8)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_9 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) * __pyx_v_x) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_17 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_18 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_19)) )))));
/* … */
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
__pyx_t_9 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = __pyx_v_jj;
__pyx_t_18 = __pyx_v_kk;
__pyx_t_19 = 2;
__pyx_t_20 = __pyx_v_jj;
__pyx_t_21 = __pyx_v_kk;
__pyx_t_22 = 2;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_20 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_21 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_22)) )) += (__pyx_v_w * ((((*((__pyx_t_5numpy_uint64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_7 * __pyx_v_I_n.strides[0]) )) + __pyx_t_8)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_9 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) * __pyx_v_x) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_17 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_18 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_19)) )))));
/* … */
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
__pyx_t_9 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = __pyx_v_jj;
__pyx_t_18 = __pyx_v_kk;
__pyx_t_19 = 2;
__pyx_t_20 = __pyx_v_jj;
__pyx_t_21 = __pyx_v_kk;
__pyx_t_22 = 2;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_20 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_21 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_22)) )) += (__pyx_v_w * ((((*((__pyx_t_5numpy_uint32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_7 * __pyx_v_I_n.strides[0]) )) + __pyx_t_8)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_9 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) * __pyx_v_x) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_mat.data + __pyx_t_17 * __pyx_v_I0_mat.strides[0]) ) + __pyx_t_18 * __pyx_v_I0_mat.strides[1]) )) + __pyx_t_19)) )))));
0301:
+0302: W0_mat[jj, kk, 0] += w * (W[j, k] * W[j, k] - W0_mat[jj, kk, 0])
__pyx_t_19 = __pyx_v_j;
__pyx_t_18 = __pyx_v_k;
__pyx_t_17 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_9 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_7 = 0;
__pyx_t_22 = __pyx_v_jj;
__pyx_t_21 = __pyx_v_kk;
__pyx_t_20 = 0;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_22 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_21 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_20)) )) += (__pyx_v_w * (((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_19 * __pyx_v_W.strides[0]) )) + __pyx_t_18)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_17 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_9 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_7)) )))));
/* … */
__pyx_t_19 = __pyx_v_j;
__pyx_t_18 = __pyx_v_k;
__pyx_t_17 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_9 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_7 = 0;
__pyx_t_22 = __pyx_v_jj;
__pyx_t_21 = __pyx_v_kk;
__pyx_t_20 = 0;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_22 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_21 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_20)) )) += (__pyx_v_w * (((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_19 * __pyx_v_W.strides[0]) )) + __pyx_t_18)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_17 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_9 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_7)) )))));
/* … */
__pyx_t_19 = __pyx_v_j;
__pyx_t_18 = __pyx_v_k;
__pyx_t_17 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_9 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_7 = 0;
__pyx_t_22 = __pyx_v_jj;
__pyx_t_21 = __pyx_v_kk;
__pyx_t_20 = 0;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_22 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_21 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_20)) )) += (__pyx_v_w * (((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_19 * __pyx_v_W.strides[0]) )) + __pyx_t_18)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_17 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_9 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_7)) )))));
/* … */
__pyx_t_19 = __pyx_v_j;
__pyx_t_18 = __pyx_v_k;
__pyx_t_17 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_9 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_7 = 0;
__pyx_t_22 = __pyx_v_jj;
__pyx_t_21 = __pyx_v_kk;
__pyx_t_20 = 0;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_22 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_21 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_20)) )) += (__pyx_v_w * (((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_19 * __pyx_v_W.strides[0]) )) + __pyx_t_18)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_17 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_9 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_7)) )))));
+0303: W0_mat[jj, kk, 1] += w * (W[j, k] * W[j, k] * y - W0_mat[jj, kk, 1])
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
__pyx_t_9 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = __pyx_v_jj;
__pyx_t_18 = __pyx_v_kk;
__pyx_t_19 = 1;
__pyx_t_20 = __pyx_v_jj;
__pyx_t_21 = __pyx_v_kk;
__pyx_t_22 = 1;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_20 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_21 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_22)) )) += (__pyx_v_w * ((((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_7 * __pyx_v_W.strides[0]) )) + __pyx_t_8)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_9 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) * __pyx_v_y) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_17 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_18 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_19)) )))));
/* … */
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
__pyx_t_9 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = __pyx_v_jj;
__pyx_t_18 = __pyx_v_kk;
__pyx_t_19 = 1;
__pyx_t_20 = __pyx_v_jj;
__pyx_t_21 = __pyx_v_kk;
__pyx_t_22 = 1;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_20 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_21 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_22)) )) += (__pyx_v_w * ((((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_7 * __pyx_v_W.strides[0]) )) + __pyx_t_8)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_9 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) * __pyx_v_y) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_17 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_18 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_19)) )))));
/* … */
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
__pyx_t_9 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = __pyx_v_jj;
__pyx_t_18 = __pyx_v_kk;
__pyx_t_19 = 1;
__pyx_t_20 = __pyx_v_jj;
__pyx_t_21 = __pyx_v_kk;
__pyx_t_22 = 1;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_20 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_21 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_22)) )) += (__pyx_v_w * ((((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_7 * __pyx_v_W.strides[0]) )) + __pyx_t_8)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_9 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) * __pyx_v_y) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_17 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_18 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_19)) )))));
/* … */
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
__pyx_t_9 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = __pyx_v_jj;
__pyx_t_18 = __pyx_v_kk;
__pyx_t_19 = 1;
__pyx_t_20 = __pyx_v_jj;
__pyx_t_21 = __pyx_v_kk;
__pyx_t_22 = 1;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_20 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_21 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_22)) )) += (__pyx_v_w * ((((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_7 * __pyx_v_W.strides[0]) )) + __pyx_t_8)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_9 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) * __pyx_v_y) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_17 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_18 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_19)) )))));
+0304: W0_mat[jj, kk, 2] += w * (W[j, k] * W[j, k] * x - W0_mat[jj, kk, 2])
__pyx_t_19 = __pyx_v_j;
__pyx_t_18 = __pyx_v_k;
__pyx_t_17 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_9 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_7 = 2;
__pyx_t_22 = __pyx_v_jj;
__pyx_t_21 = __pyx_v_kk;
__pyx_t_20 = 2;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_22 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_21 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_20)) )) += (__pyx_v_w * ((((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_19 * __pyx_v_W.strides[0]) )) + __pyx_t_18)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_17 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) * __pyx_v_x) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_9 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_7)) )))));
}
}
}
}
/* … */
__pyx_t_19 = __pyx_v_j;
__pyx_t_18 = __pyx_v_k;
__pyx_t_17 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_9 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_7 = 2;
__pyx_t_22 = __pyx_v_jj;
__pyx_t_21 = __pyx_v_kk;
__pyx_t_20 = 2;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_22 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_21 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_20)) )) += (__pyx_v_w * ((((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_19 * __pyx_v_W.strides[0]) )) + __pyx_t_18)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_17 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) * __pyx_v_x) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_9 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_7)) )))));
}
}
}
}
/* … */
__pyx_t_19 = __pyx_v_j;
__pyx_t_18 = __pyx_v_k;
__pyx_t_17 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_9 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_7 = 2;
__pyx_t_22 = __pyx_v_jj;
__pyx_t_21 = __pyx_v_kk;
__pyx_t_20 = 2;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_22 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_21 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_20)) )) += (__pyx_v_w * ((((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_19 * __pyx_v_W.strides[0]) )) + __pyx_t_18)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_17 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) * __pyx_v_x) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_9 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_7)) )))));
}
}
}
}
/* … */
__pyx_t_19 = __pyx_v_j;
__pyx_t_18 = __pyx_v_k;
__pyx_t_17 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_9 = __pyx_v_jj;
__pyx_t_8 = __pyx_v_kk;
__pyx_t_7 = 2;
__pyx_t_22 = __pyx_v_jj;
__pyx_t_21 = __pyx_v_kk;
__pyx_t_20 = 2;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_22 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_21 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_20)) )) += (__pyx_v_w * ((((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_19 * __pyx_v_W.strides[0]) )) + __pyx_t_18)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_17 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) )))) * __pyx_v_x) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_mat.data + __pyx_t_9 * __pyx_v_W0_mat.strides[0]) ) + __pyx_t_8 * __pyx_v_W0_mat.strides[1]) )) + __pyx_t_7)) )))));
}
}
}
}
0305:
+0306: def LOWESS_reference(uint_t[:, :, ::1] I_n not None, float_t[:, ::1] W not None, float_t[:, :, ::1] u not None,
/* Python wrapper */
static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_3LOWESS_reference(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6pyrost_3bin_6pyrost_2LOWESS_reference[] = "Generate an unabberated reference image of the sample based on the\n pixel mapping `u` and the measured data `I_n` using the Local Weighted\n Linear Regression (LOWESS).\n\n Args:\n I_n (numpy.ndarray) : Measured intensity frames.\n W (numpy.ndarray) : Measured frames' whitefield.\n u (numpy.ndarray) : The discrete geometrical mapping of the detector\n plane to the reference image.\n di (numpy.ndarray) : Initial sample's translations along the vertical\n detector axis in pixels.\n dj (numpy.ndarray) : Initial sample's translations along the horizontal\n detector axis in pixels.\n ds_y (float) : Sampling interval of reference image in pixels along the\n vertical axis.\n ds_x (float) : Sampling interval of reference image in pixels along the\n horizontal axis.\n h (float) : Gaussian kernel bandwidth in pixels.\n return_nm0 (bool) : If True, also returns the lower bounds (`n0`, `m0`)\n of the reference image in pixels.\n num_threads (int) : Number of threads.\n\n Returns:\n Tuple[numpy.ndarray, int, int] : A tuple of three elements ('I0', 'n0',\n 'm0'). The elements are the following:\n\n * 'I0' : Reference image array.\n * 'n0' : The lower bounds of the vertical detector axis of the reference\n image at the reference frame in pixels. Only provided if `return_nm0` is\n True.\n * 'm0' : The lower bounds of the horizontal detector axis of the reference\n image at the reference frame in pixels. Only provided if `return_nm0` is\n True.\n\n Notes:\n The pixel mapping `u` maps the intensity measurements from the\n detector plane to the reference plane as follows:\n\n .. math::\n i_{ref}[n, i, j] = u[0, i, j] + di[n], \\; j_{ref}[n, i, j] = u[1, i, j] + dj[n]\n\n The reference image profile :math:`I_{ref}[ii, jj]` is ob""tained\n with the LOWESS regression extimator as follows:\n\n .. math::\n\n I_{ref}[i, j] = \\frac{\\sum_{n, i^{\\prime}, j^{\\prime}} K[i - i_{ref}[n,\n i^{\\prime}, j^{\\prime}], j - j_{ref}[n, i^{\\prime}, j^{\\prime}], h]\n \\; r_{IW}[n, a^{IW}, b^{IW}_i, b^{IW}_j]}\n {\\sum_{n, i^{\\prime}, j^{\\prime}} K[i - i_{ref}[n, i^{\\prime}, j^{\\prime}], \n j - j_{ref}[n, i^{\\prime}, j^{\\prime}], h] \\;\n r_{WW}[n, a^{WW}, b^{WW}_i, b^{WW}_j]}\n\n where :math:`r_{IW}[n, a, b_i, b_j]` and :math:`r_{WW}[n, a, b_i, b_j]`\n are the residuals at the pixel :math:`i, j` with linear coefficients\n defined with the least squares approach:\n\n .. math::\n\n r_{IW}[n, a, b_i, b_j] = I[n, i^{\\prime}, j^{\\prime}] W[i^{\\prime}, j^{\\prime}]\n - a - b_i (i - i_{ref}[n, i^{\\prime}, j^{\\prime}) - b_j\n (j - j_{ref}[n, i^{\\prime}, j^{\\prime})\n\n .. math::\n\n r_{WW}[n, a, b_i, b_j] = W^2[i^{\\prime}, j^{\\prime}]\n - a - b_i (i - i_{ref}[n, i^{\\prime}, j^{\\prime}) - b_j\n (j - j_{ref}[n, i^{\\prime}, j^{\\prime})\n\n and :math:`K[i, j, h] = \\frac{1}{\\sqrt{2 \\pi}} \\exp(-\\frac{i^2 + j^2}{h})`\n is the Gaussian kernel.\n ";
static PyMethodDef __pyx_mdef_6pyrost_3bin_6pyrost_3LOWESS_reference = {"LOWESS_reference", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pyrost_3bin_6pyrost_3LOWESS_reference, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_2LOWESS_reference};
static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_3LOWESS_reference(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_signatures = 0;
PyObject *__pyx_v_args = 0;
PyObject *__pyx_v_kwargs = 0;
CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
PyObject* values[4] = {0,0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 306, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 306, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
}
__pyx_v_signatures = values[0];
__pyx_v_args = values[1];
__pyx_v_kwargs = values[2];
__pyx_v_defaults = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 306, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_2LOWESS_reference(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_2LOWESS_reference(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
PyObject *__pyx_v_dest_sig = NULL;
Py_ssize_t __pyx_v_i;
PyTypeObject *__pyx_v_ndarray = 0;
__Pyx_memviewslice __pyx_v_memslice;
Py_ssize_t __pyx_v_itemsize;
int __pyx_v_dtype_signed;
char __pyx_v_kind;
int __pyx_v____pyx_uint64_t_is_signed;
int __pyx_v____pyx_uint32_t_is_signed;
PyObject *__pyx_v_arg = NULL;
PyObject *__pyx_v_dtype = NULL;
PyObject *__pyx_v_arg_base = NULL;
PyObject *__pyx_v_candidates = NULL;
PyObject *__pyx_v_sig = NULL;
int __pyx_v_match_found;
PyObject *__pyx_v_src_sig = NULL;
PyObject *__pyx_v_dst_type = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("LOWESS_reference", 0);
__Pyx_INCREF(__pyx_v_kwargs);
__pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{ Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
}
}
__pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_3 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 306, __pyx_L1_error)
__pyx_t_3 = ((!__pyx_t_4) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L4_bool_binop_done:;
if (__pyx_t_2) {
__Pyx_INCREF(Py_None);
__Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
}
__pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_v_itemsize = -1L;
__pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
__pyx_v____pyx_uint32_t_is_signed = (!((((__pyx_t_5numpy_uint32_t)-1L) > 0) != 0));
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 306, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 306, __pyx_L1_error)
__pyx_t_2 = ((0 < __pyx_t_5) != 0);
if (__pyx_t_2) {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 306, __pyx_L1_error)
}
__pyx_t_1 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 0);
__Pyx_INCREF(__pyx_t_1);
__pyx_v_arg = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L6;
}
__pyx_t_3 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L7_bool_binop_done;
}
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 306, __pyx_L1_error)
}
__pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_I_n, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 306, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_4 != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L7_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 306, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_I_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_arg = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L6;
}
/*else*/ {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 306, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 306, __pyx_L1_error)
__pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_INCREF(__pyx_int_8);
__Pyx_GIVEREF(__pyx_int_8);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_8);
__Pyx_INCREF(__pyx_n_s_s);
__Pyx_GIVEREF(__pyx_n_s_s);
PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_Raise(__pyx_t_6, 0, 0, 0);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__PYX_ERR(0, 306, __pyx_L1_error)
}
__pyx_L6:;
while (1) {
__pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_dtype = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L12;
}
__pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_arg_base = __pyx_t_6;
__pyx_t_6 = 0;
__pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_dtype = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L13;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__pyx_v_dtype = Py_None;
}
__pyx_L13:;
goto __pyx_L12;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__pyx_v_dtype = Py_None;
}
__pyx_L12:;
__pyx_v_itemsize = -1L;
__pyx_t_2 = (__pyx_v_dtype != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_itemsize = __pyx_t_5;
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_kind = __pyx_t_7;
__pyx_v_dtype_signed = (__pyx_v_kind == 'i');
switch (__pyx_v_kind) {
case 'i':
case 'u':
__pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L16_bool_binop_done;
}
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L16_bool_binop_done;
}
__pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L16_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 306, __pyx_L1_error)
goto __pyx_L10_break;
}
__pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint32_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L20_bool_binop_done;
}
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L20_bool_binop_done;
}
__pyx_t_2 = ((!((__pyx_v____pyx_uint32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L20_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 306, __pyx_L1_error)
goto __pyx_L10_break;
}
break;
case 'f':
break;
case 'c':
break;
case 'O':
break;
default: break;
}
}
}
__pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L24_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L24_bool_binop_done:;
if (__pyx_t_3) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_3 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_3) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 306, __pyx_L1_error)
goto __pyx_L10_break;
}
/*else*/ {
PyErr_Clear();
}
}
__pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L28_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint32_t))) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L28_bool_binop_done:;
if (__pyx_t_3) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_3 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_3) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 306, __pyx_L1_error)
goto __pyx_L10_break;
}
/*else*/ {
PyErr_Clear();
}
}
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 306, __pyx_L1_error)
goto __pyx_L10_break;
}
__pyx_L10_break:;
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 306, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 306, __pyx_L1_error)
__pyx_t_3 = ((1 < __pyx_t_5) != 0);
if (__pyx_t_3) {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 306, __pyx_L1_error)
}
__pyx_t_6 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 1);
__Pyx_INCREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
__pyx_t_6 = 0;
goto __pyx_L31;
}
__pyx_t_2 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_2 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_3 = __pyx_t_4;
goto __pyx_L32_bool_binop_done;
}
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 306, __pyx_L1_error)
}
__pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_W, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 306, __pyx_L1_error)
__pyx_t_2 = (__pyx_t_4 != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L32_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 306, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_W); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
__pyx_t_6 = 0;
goto __pyx_L31;
}
/*else*/ {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 306, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 306, __pyx_L1_error)
__pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_int_8);
__Pyx_GIVEREF(__pyx_int_8);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_8);
__Pyx_INCREF(__pyx_n_s_s);
__Pyx_GIVEREF(__pyx_n_s_s);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 306, __pyx_L1_error)
}
__pyx_L31:;
while (1) {
__pyx_t_3 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
__pyx_t_1 = 0;
goto __pyx_L37;
}
__pyx_t_3 = __pyx_memoryview_check(__pyx_v_arg);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_arg_base, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
__pyx_t_1 = 0;
goto __pyx_L38;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
}
__pyx_L38:;
goto __pyx_L37;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
}
__pyx_L37:;
__pyx_v_itemsize = -1L;
__pyx_t_3 = (__pyx_v_dtype != Py_None);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_itemsize = __pyx_t_5;
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_1); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_kind = __pyx_t_7;
__pyx_v_dtype_signed = (__pyx_v_kind == 'i');
switch (__pyx_v_kind) {
case 'i':
case 'u':
break;
case 'f':
__pyx_t_3 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L41_bool_binop_done;
}
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 2) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L41_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 306, __pyx_L1_error)
goto __pyx_L35_break;
}
__pyx_t_3 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L44_bool_binop_done;
}
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 2) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L44_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 306, __pyx_L1_error)
goto __pyx_L35_break;
}
break;
case 'c':
break;
case 'O':
break;
default: break;
}
}
}
__pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L47_bool_binop_done;
}
__pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L47_bool_binop_done:;
if (__pyx_t_2) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_2 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_2) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 306, __pyx_L1_error)
goto __pyx_L35_break;
}
/*else*/ {
PyErr_Clear();
}
}
__pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L51_bool_binop_done;
}
__pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L51_bool_binop_done:;
if (__pyx_t_2) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_2 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_2) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 306, __pyx_L1_error)
goto __pyx_L35_break;
}
/*else*/ {
PyErr_Clear();
}
}
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 306, __pyx_L1_error)
goto __pyx_L35_break;
}
__pyx_L35_break:;
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_candidates = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_5 = 0;
if (unlikely(__pyx_v_signatures == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 306, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_9, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_10);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_v_match_found = 0;
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_14 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
__pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
if (likely(__pyx_t_14)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
__Pyx_INCREF(__pyx_t_14);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_13, function);
}
}
__pyx_t_12 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2);
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
__pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
if (likely(__pyx_t_12)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
__Pyx_INCREF(__pyx_t_12);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_13, function);
}
}
__pyx_t_6 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__3);
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_15 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 306, __pyx_L1_error)
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_i = __pyx_t_17;
__pyx_t_6 = PyList_GET_ITEM(__pyx_v_dest_sig, __pyx_v_i);
__Pyx_INCREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_2 = (__pyx_v_dst_type != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_13 = PyObject_RichCompare(__pyx_t_6, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
if (__pyx_t_3) {
__pyx_v_match_found = 1;
goto __pyx_L59;
}
/*else*/ {
__pyx_v_match_found = 0;
goto __pyx_L57_break;
}
__pyx_L59:;
}
}
__pyx_L57_break:;
__pyx_t_3 = (__pyx_v_match_found != 0);
if (__pyx_t_3) {
__pyx_t_18 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 306, __pyx_L1_error)
}
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
__pyx_t_2 = ((!__pyx_t_3) != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 306, __pyx_L1_error)
}
__pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 306, __pyx_L1_error)
__pyx_t_2 = ((__pyx_t_9 > 1) != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 306, __pyx_L1_error)
}
/*else*/ {
__Pyx_XDECREF(__pyx_r);
if (unlikely(__pyx_v_signatures == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 306, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), PyList_GET_ITEM(__pyx_v_candidates, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_AddTraceback("pyrost.bin.pyrost.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_dest_sig);
__Pyx_XDECREF(__pyx_v_ndarray);
__Pyx_XDECREF(__pyx_v_arg);
__Pyx_XDECREF(__pyx_v_dtype);
__Pyx_XDECREF(__pyx_v_arg_base);
__Pyx_XDECREF(__pyx_v_candidates);
__Pyx_XDECREF(__pyx_v_sig);
__Pyx_XDECREF(__pyx_v_src_sig);
__Pyx_XDECREF(__pyx_v_dst_type);
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_152__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults12, __pyx_self)->__pyx_arg_return_nm0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults12, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
__pyx_t_1 = 0;
__pyx_t_2 = 0;
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None);
__pyx_t_3 = 0;
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_33LOWESS_reference(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_6pyrost_3bin_6pyrost_33LOWESS_reference = {"__pyx_fuse_0_0LOWESS_reference", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_33LOWESS_reference, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_2LOWESS_reference};
static PyObject *__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_33LOWESS_reference(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_h;
int __pyx_v_return_nm0;
unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("LOWESS_reference (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_h,&__pyx_n_s_return_nm0,&__pyx_n_s_num_threads,0};
PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
__pyx_defaults12 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults12, __pyx_self);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 1); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 2); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 3); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 4); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 5); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 6); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 7); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_return_nm0);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[9] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "LOWESS_reference") < 0)) __PYX_ERR(0, 306, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 306, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 306, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 306, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 307, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 307, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 307, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 307, __pyx_L3_error)
__pyx_v_h = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_h == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 307, __pyx_L3_error)
if (values[8]) {
__pyx_v_return_nm0 = __Pyx_PyObject_IsTrue(values[8]); if (unlikely((__pyx_v_return_nm0 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 308, __pyx_L3_error)
} else {
__pyx_v_return_nm0 = __pyx_dynamic_args->__pyx_arg_return_nm0;
}
if (values[9]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[9]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 308, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 306, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.LOWESS_reference", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 306, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 306, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 306, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 307, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 307, __pyx_L1_error)
}
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_32LOWESS_reference(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h, __pyx_v_return_nm0, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_32LOWESS_reference(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h, int __pyx_v_return_nm0, unsigned int __pyx_v_num_threads) {
int __pyx_v_type_num;
int __pyx_v_N;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_i;
int __pyx_v_j;
int __pyx_v_t;
int __pyx_v_k;
__pyx_t_5numpy_float64_t __pyx_v_n0;
__pyx_t_5numpy_float64_t __pyx_v_m0;
int __pyx_v_Y0;
int __pyx_v_X0;
npy_intp *__pyx_v_shape;
__Pyx_memviewslice __pyx_v_W_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_M_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W0_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_v_I0 = 0;
__Pyx_memviewslice __pyx_v__I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__pyx_t_5numpy_float64_t __pyx_v_W_sum;
__pyx_t_5numpy_float64_t __pyx_v_w;
__pyx_t_5numpy_float64_t __pyx_v_betta_y;
__pyx_t_5numpy_float64_t __pyx_v_betta_x;
__pyx_t_5numpy_float64_t __pyx_v_var_y;
__pyx_t_5numpy_float64_t __pyx_v_var_x;
__pyx_t_5numpy_float64_t __pyx_v_I0_pred;
__pyx_t_5numpy_float64_t __pyx_v_W0_pred;
__pyx_t_5numpy_float64_t *__pyx_v_M_mat;
__pyx_t_5numpy_float64_t *__pyx_v_I0_mat;
__pyx_t_5numpy_float64_t *__pyx_v_W0_mat;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_0_0LOWESS_reference", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_11, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_15, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_17, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_18, 1);
__Pyx_XDECREF(__pyx_t_27);
__Pyx_AddTraceback("pyrost.bin.pyrost.LOWESS_reference", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XDEC_MEMVIEW(&__pyx_v_W_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_M_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W0_buf, 1);
__Pyx_XDECREF((PyObject *)__pyx_v_I0);
__PYX_XDEC_MEMVIEW(&__pyx_v__I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_154__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults13, __pyx_self)->__pyx_arg_return_nm0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults13, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
__pyx_t_1 = 0;
__pyx_t_2 = 0;
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None);
__pyx_t_3 = 0;
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_35LOWESS_reference(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_6pyrost_3bin_6pyrost_35LOWESS_reference = {"__pyx_fuse_0_1LOWESS_reference", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_35LOWESS_reference, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_2LOWESS_reference};
static PyObject *__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_35LOWESS_reference(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_h;
int __pyx_v_return_nm0;
unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("LOWESS_reference (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_h,&__pyx_n_s_return_nm0,&__pyx_n_s_num_threads,0};
PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
__pyx_defaults13 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults13, __pyx_self);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 1); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 2); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 3); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 4); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 5); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 6); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 7); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_return_nm0);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[9] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "LOWESS_reference") < 0)) __PYX_ERR(0, 306, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 306, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 306, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 306, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 307, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 307, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 307, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 307, __pyx_L3_error)
__pyx_v_h = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_h == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 307, __pyx_L3_error)
if (values[8]) {
__pyx_v_return_nm0 = __Pyx_PyObject_IsTrue(values[8]); if (unlikely((__pyx_v_return_nm0 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 308, __pyx_L3_error)
} else {
__pyx_v_return_nm0 = __pyx_dynamic_args->__pyx_arg_return_nm0;
}
if (values[9]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[9]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 308, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 306, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.LOWESS_reference", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 306, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 306, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 306, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 307, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 307, __pyx_L1_error)
}
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_34LOWESS_reference(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h, __pyx_v_return_nm0, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_34LOWESS_reference(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h, int __pyx_v_return_nm0, unsigned int __pyx_v_num_threads) {
int __pyx_v_type_num;
int __pyx_v_N;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_i;
int __pyx_v_j;
int __pyx_v_t;
int __pyx_v_k;
__pyx_t_5numpy_float32_t __pyx_v_n0;
__pyx_t_5numpy_float32_t __pyx_v_m0;
int __pyx_v_Y0;
int __pyx_v_X0;
npy_intp *__pyx_v_shape;
__Pyx_memviewslice __pyx_v_W_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_M_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W0_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_v_I0 = 0;
__Pyx_memviewslice __pyx_v__I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__pyx_t_5numpy_float32_t __pyx_v_W_sum;
__pyx_t_5numpy_float32_t __pyx_v_w;
__pyx_t_5numpy_float32_t __pyx_v_betta_y;
__pyx_t_5numpy_float32_t __pyx_v_betta_x;
__pyx_t_5numpy_float32_t __pyx_v_var_y;
__pyx_t_5numpy_float32_t __pyx_v_var_x;
__pyx_t_5numpy_float32_t __pyx_v_I0_pred;
__pyx_t_5numpy_float32_t __pyx_v_W0_pred;
__pyx_t_5numpy_float32_t *__pyx_v_M_mat;
__pyx_t_5numpy_float32_t *__pyx_v_I0_mat;
__pyx_t_5numpy_float32_t *__pyx_v_W0_mat;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_0_1LOWESS_reference", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_11, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_15, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_17, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_18, 1);
__Pyx_XDECREF(__pyx_t_27);
__Pyx_AddTraceback("pyrost.bin.pyrost.LOWESS_reference", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XDEC_MEMVIEW(&__pyx_v_W_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_M_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W0_buf, 1);
__Pyx_XDECREF((PyObject *)__pyx_v_I0);
__PYX_XDEC_MEMVIEW(&__pyx_v__I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_156__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults14, __pyx_self)->__pyx_arg_return_nm0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults14, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
__pyx_t_1 = 0;
__pyx_t_2 = 0;
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None);
__pyx_t_3 = 0;
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_37LOWESS_reference(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_6pyrost_3bin_6pyrost_37LOWESS_reference = {"__pyx_fuse_1_0LOWESS_reference", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_37LOWESS_reference, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_2LOWESS_reference};
static PyObject *__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_37LOWESS_reference(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_h;
int __pyx_v_return_nm0;
unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("LOWESS_reference (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_h,&__pyx_n_s_return_nm0,&__pyx_n_s_num_threads,0};
PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
__pyx_defaults14 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults14, __pyx_self);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 1); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 2); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 3); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 4); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 5); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 6); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 7); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_return_nm0);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[9] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "LOWESS_reference") < 0)) __PYX_ERR(0, 306, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 306, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 306, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 306, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 307, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 307, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 307, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 307, __pyx_L3_error)
__pyx_v_h = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_h == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 307, __pyx_L3_error)
if (values[8]) {
__pyx_v_return_nm0 = __Pyx_PyObject_IsTrue(values[8]); if (unlikely((__pyx_v_return_nm0 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 308, __pyx_L3_error)
} else {
__pyx_v_return_nm0 = __pyx_dynamic_args->__pyx_arg_return_nm0;
}
if (values[9]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[9]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 308, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 306, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.LOWESS_reference", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 306, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 306, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 306, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 307, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 307, __pyx_L1_error)
}
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_36LOWESS_reference(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h, __pyx_v_return_nm0, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_36LOWESS_reference(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h, int __pyx_v_return_nm0, unsigned int __pyx_v_num_threads) {
int __pyx_v_type_num;
int __pyx_v_N;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_i;
int __pyx_v_j;
int __pyx_v_t;
int __pyx_v_k;
__pyx_t_5numpy_float64_t __pyx_v_n0;
__pyx_t_5numpy_float64_t __pyx_v_m0;
int __pyx_v_Y0;
int __pyx_v_X0;
npy_intp *__pyx_v_shape;
__Pyx_memviewslice __pyx_v_W_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_M_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W0_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_v_I0 = 0;
__Pyx_memviewslice __pyx_v__I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__pyx_t_5numpy_float64_t __pyx_v_W_sum;
__pyx_t_5numpy_float64_t __pyx_v_w;
__pyx_t_5numpy_float64_t __pyx_v_betta_y;
__pyx_t_5numpy_float64_t __pyx_v_betta_x;
__pyx_t_5numpy_float64_t __pyx_v_var_y;
__pyx_t_5numpy_float64_t __pyx_v_var_x;
__pyx_t_5numpy_float64_t __pyx_v_I0_pred;
__pyx_t_5numpy_float64_t __pyx_v_W0_pred;
__pyx_t_5numpy_float64_t *__pyx_v_M_mat;
__pyx_t_5numpy_float64_t *__pyx_v_I0_mat;
__pyx_t_5numpy_float64_t *__pyx_v_W0_mat;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_1_0LOWESS_reference", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_11, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_15, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_17, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_18, 1);
__Pyx_XDECREF(__pyx_t_27);
__Pyx_AddTraceback("pyrost.bin.pyrost.LOWESS_reference", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XDEC_MEMVIEW(&__pyx_v_W_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_M_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W0_buf, 1);
__Pyx_XDECREF((PyObject *)__pyx_v_I0);
__PYX_XDEC_MEMVIEW(&__pyx_v__I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_158__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults15, __pyx_self)->__pyx_arg_return_nm0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults15, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
__pyx_t_1 = 0;
__pyx_t_2 = 0;
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None);
__pyx_t_3 = 0;
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_39LOWESS_reference(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_6pyrost_3bin_6pyrost_39LOWESS_reference = {"__pyx_fuse_1_1LOWESS_reference", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_39LOWESS_reference, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_2LOWESS_reference};
static PyObject *__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_39LOWESS_reference(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_h;
int __pyx_v_return_nm0;
unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("LOWESS_reference (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_h,&__pyx_n_s_return_nm0,&__pyx_n_s_num_threads,0};
PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
__pyx_defaults15 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults15, __pyx_self);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 1); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 2); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 3); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 4); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 5); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 6); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, 7); __PYX_ERR(0, 306, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_return_nm0);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[9] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "LOWESS_reference") < 0)) __PYX_ERR(0, 306, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 306, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 306, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 306, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 307, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 307, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 307, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 307, __pyx_L3_error)
__pyx_v_h = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_h == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 307, __pyx_L3_error)
if (values[8]) {
__pyx_v_return_nm0 = __Pyx_PyObject_IsTrue(values[8]); if (unlikely((__pyx_v_return_nm0 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 308, __pyx_L3_error)
} else {
__pyx_v_return_nm0 = __pyx_dynamic_args->__pyx_arg_return_nm0;
}
if (values[9]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[9]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 308, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("LOWESS_reference", 0, 8, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 306, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.LOWESS_reference", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 306, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 306, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 306, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 307, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 307, __pyx_L1_error)
}
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_38LOWESS_reference(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h, __pyx_v_return_nm0, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_38LOWESS_reference(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h, int __pyx_v_return_nm0, unsigned int __pyx_v_num_threads) {
int __pyx_v_type_num;
int __pyx_v_N;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_i;
int __pyx_v_j;
int __pyx_v_t;
int __pyx_v_k;
__pyx_t_5numpy_float32_t __pyx_v_n0;
__pyx_t_5numpy_float32_t __pyx_v_m0;
int __pyx_v_Y0;
int __pyx_v_X0;
npy_intp *__pyx_v_shape;
__Pyx_memviewslice __pyx_v_W_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_M_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W0_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_v_I0 = 0;
__Pyx_memviewslice __pyx_v__I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__pyx_t_5numpy_float32_t __pyx_v_W_sum;
__pyx_t_5numpy_float32_t __pyx_v_w;
__pyx_t_5numpy_float32_t __pyx_v_betta_y;
__pyx_t_5numpy_float32_t __pyx_v_betta_x;
__pyx_t_5numpy_float32_t __pyx_v_var_y;
__pyx_t_5numpy_float32_t __pyx_v_var_x;
__pyx_t_5numpy_float32_t __pyx_v_I0_pred;
__pyx_t_5numpy_float32_t __pyx_v_W0_pred;
__pyx_t_5numpy_float32_t *__pyx_v_M_mat;
__pyx_t_5numpy_float32_t *__pyx_v_I0_mat;
__pyx_t_5numpy_float32_t *__pyx_v_W0_mat;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_1_1LOWESS_reference", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_11, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_15, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_17, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_18, 1);
__Pyx_XDECREF(__pyx_t_27);
__Pyx_AddTraceback("pyrost.bin.pyrost.LOWESS_reference", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XDEC_MEMVIEW(&__pyx_v_W_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_M_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W0_buf, 1);
__Pyx_XDECREF((PyObject *)__pyx_v_I0);
__PYX_XDEC_MEMVIEW(&__pyx_v__I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_4);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
__pyx_t_4 = 0;
__pyx_t_2 = 0;
/* … */
__pyx_tuple__35 = PyTuple_Pack(40, __pyx_n_s_I_n, __pyx_n_s_W, __pyx_n_s_u, __pyx_n_s_di, __pyx_n_s_dj, __pyx_n_s_ds_y, __pyx_n_s_ds_x, __pyx_n_s_h, __pyx_n_s_return_nm0, __pyx_n_s_num_threads, __pyx_n_s_type_num, __pyx_n_s_N, __pyx_n_s_Y, __pyx_n_s_X, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_t, __pyx_n_s_k, __pyx_n_s_n0, __pyx_n_s_m0, __pyx_n_s_Y0, __pyx_n_s_X0, __pyx_n_s_shape, __pyx_n_s_W_buf, __pyx_n_s_M_buf, __pyx_n_s_I0_buf, __pyx_n_s_W0_buf, __pyx_n_s_I0, __pyx_n_s_I0_2, __pyx_n_s_W_sum, __pyx_n_s_w, __pyx_n_s_betta_y, __pyx_n_s_betta_x, __pyx_n_s_var_y, __pyx_n_s_var_x, __pyx_n_s_I0_pred, __pyx_n_s_W0_pred, __pyx_n_s_M_mat, __pyx_n_s_I0_mat, __pyx_n_s_W0_mat); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__35);
__Pyx_GIVEREF(__pyx_tuple__35);
__pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_0_0__pyx_mdef_6pyrost_3bin_6pyrost_33LOWESS_reference, 0, __pyx_n_s_LOWESS_reference, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__36)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults12), 0)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_CyFunction_Defaults(__pyx_defaults12, __pyx_t_4)->__pyx_arg_return_nm0 = 1;
__Pyx_CyFunction_Defaults(__pyx_defaults12, __pyx_t_4)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pyrost_3bin_6pyrost_152__defaults__);
if (PyDict_SetItem(__pyx_t_2, __pyx_kp_s_uint64_t_float64_t, __pyx_t_4) < 0) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_0_1__pyx_mdef_6pyrost_3bin_6pyrost_35LOWESS_reference, 0, __pyx_n_s_LOWESS_reference, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__36)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults13), 0)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_CyFunction_Defaults(__pyx_defaults13, __pyx_t_4)->__pyx_arg_return_nm0 = 1;
__Pyx_CyFunction_Defaults(__pyx_defaults13, __pyx_t_4)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pyrost_3bin_6pyrost_154__defaults__);
if (PyDict_SetItem(__pyx_t_2, __pyx_kp_s_uint64_t_float32_t, __pyx_t_4) < 0) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_1_0__pyx_mdef_6pyrost_3bin_6pyrost_37LOWESS_reference, 0, __pyx_n_s_LOWESS_reference, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__36)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults14), 0)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_CyFunction_Defaults(__pyx_defaults14, __pyx_t_4)->__pyx_arg_return_nm0 = 1;
__Pyx_CyFunction_Defaults(__pyx_defaults14, __pyx_t_4)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pyrost_3bin_6pyrost_156__defaults__);
if (PyDict_SetItem(__pyx_t_2, __pyx_kp_s_uint32_t_float64_t, __pyx_t_4) < 0) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_1_1__pyx_mdef_6pyrost_3bin_6pyrost_39LOWESS_reference, 0, __pyx_n_s_LOWESS_reference, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__36)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults15), 0)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_CyFunction_Defaults(__pyx_defaults15, __pyx_t_4)->__pyx_arg_return_nm0 = 1;
__Pyx_CyFunction_Defaults(__pyx_defaults15, __pyx_t_4)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pyrost_3bin_6pyrost_158__defaults__);
if (PyDict_SetItem(__pyx_t_2, __pyx_kp_s_uint32_t_float32_t, __pyx_t_4) < 0) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = __pyx_FusedFunction_New(&__pyx_mdef_6pyrost_3bin_6pyrost_3LOWESS_reference, 0, __pyx_n_s_LOWESS_reference, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__36)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
((__pyx_FusedFunctionObject *) __pyx_t_4)->__signatures__ = __pyx_t_2;
__Pyx_GIVEREF(__pyx_t_2);
__pyx_t_2 = 0;
if (PyDict_SetItem(__pyx_d, __pyx_n_s_LOWESS_reference, __pyx_t_4) < 0) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__36 = (PyObject*)__Pyx_PyCode_New(10, 0, 40, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__35, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pyrost_bin_pyrost_pyx, __pyx_n_s_LOWESS_reference, 306, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__36)) __PYX_ERR(0, 306, __pyx_L1_error)
0307: float_t[::1] di not None, float_t[::1] dj not None, double ds_y, double ds_x, double h,
+0308: bint return_nm0=True, unsigned num_threads=1):
__pyx_t_4 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyInt_From_long(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
0309: r"""Generate an unabberated reference image of the sample based on the
0310: pixel mapping `u` and the measured data `I_n` using the Local Weighted
0311: Linear Regression (LOWESS).
0312:
0313: Args:
0314: I_n (numpy.ndarray) : Measured intensity frames.
0315: W (numpy.ndarray) : Measured frames' whitefield.
0316: u (numpy.ndarray) : The discrete geometrical mapping of the detector
0317: plane to the reference image.
0318: di (numpy.ndarray) : Initial sample's translations along the vertical
0319: detector axis in pixels.
0320: dj (numpy.ndarray) : Initial sample's translations along the horizontal
0321: detector axis in pixels.
0322: ds_y (float) : Sampling interval of reference image in pixels along the
0323: vertical axis.
0324: ds_x (float) : Sampling interval of reference image in pixels along the
0325: horizontal axis.
0326: h (float) : Gaussian kernel bandwidth in pixels.
0327: return_nm0 (bool) : If True, also returns the lower bounds (`n0`, `m0`)
0328: of the reference image in pixels.
0329: num_threads (int) : Number of threads.
0330:
0331: Returns:
0332: Tuple[numpy.ndarray, int, int] : A tuple of three elements ('I0', 'n0',
0333: 'm0'). The elements are the following:
0334:
0335: * 'I0' : Reference image array.
0336: * 'n0' : The lower bounds of the vertical detector axis of the reference
0337: image at the reference frame in pixels. Only provided if `return_nm0` is
0338: True.
0339: * 'm0' : The lower bounds of the horizontal detector axis of the reference
0340: image at the reference frame in pixels. Only provided if `return_nm0` is
0341: True.
0342:
0343: Notes:
0344: The pixel mapping `u` maps the intensity measurements from the
0345: detector plane to the reference plane as follows:
0346:
0347: .. math::
0348: i_{ref}[n, i, j] = u[0, i, j] + di[n], \; j_{ref}[n, i, j] = u[1, i, j] + dj[n]
0349:
0350: The reference image profile :math:`I_{ref}[ii, jj]` is obtained
0351: with the LOWESS regression extimator as follows:
0352:
0353: .. math::
0354:
0355: I_{ref}[i, j] = \frac{\sum_{n, i^{\prime}, j^{\prime}} K[i - i_{ref}[n,
0356: i^{\prime}, j^{\prime}], j - j_{ref}[n, i^{\prime}, j^{\prime}], h]
0357: \; r_{IW}[n, a^{IW}, b^{IW}_i, b^{IW}_j]}
0358: {\sum_{n, i^{\prime}, j^{\prime}} K[i - i_{ref}[n, i^{\prime}, j^{\prime}],
0359: j - j_{ref}[n, i^{\prime}, j^{\prime}], h] \;
0360: r_{WW}[n, a^{WW}, b^{WW}_i, b^{WW}_j]}
0361:
0362: where :math:`r_{IW}[n, a, b_i, b_j]` and :math:`r_{WW}[n, a, b_i, b_j]`
0363: are the residuals at the pixel :math:`i, j` with linear coefficients
0364: defined with the least squares approach:
0365:
0366: .. math::
0367:
0368: r_{IW}[n, a, b_i, b_j] = I[n, i^{\prime}, j^{\prime}] W[i^{\prime}, j^{\prime}]
0369: - a - b_i (i - i_{ref}[n, i^{\prime}, j^{\prime}) - b_j
0370: (j - j_{ref}[n, i^{\prime}, j^{\prime})
0371:
0372: .. math::
0373:
0374: r_{WW}[n, a, b_i, b_j] = W^2[i^{\prime}, j^{\prime}]
0375: - a - b_i (i - i_{ref}[n, i^{\prime}, j^{\prime}) - b_j
0376: (j - j_{ref}[n, i^{\prime}, j^{\prime})
0377:
0378: and :math:`K[i, j, h] = \frac{1}{\sqrt{2 \pi}} \exp(-\frac{i^2 + j^2}{h})`
0379: is the Gaussian kernel.
0380: """
+0381: if ds_y <= 0.0 or ds_x <= 0.0:
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
+0382: raise ValueError('Sampling intervals must be positive')
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 382, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 382, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 382, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 382, __pyx_L1_error)
0383:
+0384: cdef int type_num = np.PyArray_TYPE(W.base)
__pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 384, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 384, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 384, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 384, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0385: cdef int N = I_n.shape[0], Y = I_n.shape[1], X = I_n.shape[2]
__pyx_v_N = (__pyx_v_I_n.shape[0]); __pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_N = (__pyx_v_I_n.shape[0]); __pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_N = (__pyx_v_I_n.shape[0]); __pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_N = (__pyx_v_I_n.shape[0]); __pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]);
0386: cdef int i, j, t, k
0387:
+0388: cdef float_t n0 = -min_float(&u[0, 0, 0], Y * X) + max_float(&di[0], N)
__pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_v_n0 = ((-__pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_5 * __pyx_v_u.strides[0]) ) + __pyx_t_6 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) )))), (__pyx_v_Y * __pyx_v_X))) + __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_di.data) + __pyx_t_8)) )))), __pyx_v_N)); /* … */ __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_v_n0 = ((-__pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_5 * __pyx_v_u.strides[0]) ) + __pyx_t_6 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) )))), (__pyx_v_Y * __pyx_v_X))) + __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_di.data) + __pyx_t_8)) )))), __pyx_v_N)); /* … */ __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_v_n0 = ((-__pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_5 * __pyx_v_u.strides[0]) ) + __pyx_t_6 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) )))), (__pyx_v_Y * __pyx_v_X))) + __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_di.data) + __pyx_t_8)) )))), __pyx_v_N)); /* … */ __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_v_n0 = ((-__pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_5 * __pyx_v_u.strides[0]) ) + __pyx_t_6 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) )))), (__pyx_v_Y * __pyx_v_X))) + __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_di.data) + __pyx_t_8)) )))), __pyx_v_N));
+0389: cdef float_t m0 = -min_float(&u[1, 0, 0], Y * X) + max_float(&dj[0], N)
__pyx_t_8 = 1; __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_v_m0 = ((-__pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_8 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) )))), (__pyx_v_Y * __pyx_v_X))) + __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dj.data) + __pyx_t_5)) )))), __pyx_v_N)); /* … */ __pyx_t_8 = 1; __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_v_m0 = ((-__pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_8 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) )))), (__pyx_v_Y * __pyx_v_X))) + __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dj.data) + __pyx_t_5)) )))), __pyx_v_N)); /* … */ __pyx_t_8 = 1; __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_v_m0 = ((-__pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_8 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) )))), (__pyx_v_Y * __pyx_v_X))) + __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dj.data) + __pyx_t_5)) )))), __pyx_v_N)); /* … */ __pyx_t_8 = 1; __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_v_m0 = ((-__pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_8 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) )))), (__pyx_v_Y * __pyx_v_X))) + __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dj.data) + __pyx_t_5)) )))), __pyx_v_N));
+0390: cdef int Y0 = <int>((max_float(&u[0, 0, 0], Y * X) - min_float(&di[0], N) + n0) / ds_y) + 1
__pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_v_Y0 = (((int)(((__pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_5 * __pyx_v_u.strides[0]) ) + __pyx_t_6 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) )))), (__pyx_v_Y * __pyx_v_X)) - __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_di.data) + __pyx_t_8)) )))), __pyx_v_N)) + __pyx_v_n0) / ((__pyx_t_5numpy_float64_t)__pyx_v_ds_y))) + 1); /* … */ __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_v_Y0 = (((int)(((double)((__pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_5 * __pyx_v_u.strides[0]) ) + __pyx_t_6 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) )))), (__pyx_v_Y * __pyx_v_X)) - __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_di.data) + __pyx_t_8)) )))), __pyx_v_N)) + __pyx_v_n0)) / __pyx_v_ds_y)) + 1); /* … */ __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_v_Y0 = (((int)(((__pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_5 * __pyx_v_u.strides[0]) ) + __pyx_t_6 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) )))), (__pyx_v_Y * __pyx_v_X)) - __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_di.data) + __pyx_t_8)) )))), __pyx_v_N)) + __pyx_v_n0) / ((__pyx_t_5numpy_float64_t)__pyx_v_ds_y))) + 1); /* … */ __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_v_Y0 = (((int)(((double)((__pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_5 * __pyx_v_u.strides[0]) ) + __pyx_t_6 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) )))), (__pyx_v_Y * __pyx_v_X)) - __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_di.data) + __pyx_t_8)) )))), __pyx_v_N)) + __pyx_v_n0)) / __pyx_v_ds_y)) + 1);
+0391: cdef int X0 = <int>((max_float(&u[1, 0, 0], Y * X) - min_float(&dj[0], N) + m0) / ds_x) + 1
__pyx_t_8 = 1; __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_v_X0 = (((int)(((__pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_8 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) )))), (__pyx_v_Y * __pyx_v_X)) - __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dj.data) + __pyx_t_5)) )))), __pyx_v_N)) + __pyx_v_m0) / ((__pyx_t_5numpy_float64_t)__pyx_v_ds_x))) + 1); /* … */ __pyx_t_8 = 1; __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_v_X0 = (((int)(((double)((__pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_8 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) )))), (__pyx_v_Y * __pyx_v_X)) - __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dj.data) + __pyx_t_5)) )))), __pyx_v_N)) + __pyx_v_m0)) / __pyx_v_ds_x)) + 1); /* … */ __pyx_t_8 = 1; __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_v_X0 = (((int)(((__pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_8 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) )))), (__pyx_v_Y * __pyx_v_X)) - __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dj.data) + __pyx_t_5)) )))), __pyx_v_N)) + __pyx_v_m0) / ((__pyx_t_5numpy_float64_t)__pyx_v_ds_x))) + 1); /* … */ __pyx_t_8 = 1; __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_v_X0 = (((int)(((double)((__pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_max_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_8 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) )))), (__pyx_v_Y * __pyx_v_X)) - __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_min_float((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dj.data) + __pyx_t_5)) )))), __pyx_v_N)) + __pyx_v_m0)) / __pyx_v_ds_x)) + 1);
0392:
+0393: cdef np.npy_intp *shape = [num_threads, Y0, X0, 4]
__pyx_t_9[0] = __pyx_v_num_threads; __pyx_t_9[1] = __pyx_v_Y0; __pyx_t_9[2] = __pyx_v_X0; __pyx_t_9[3] = 4; __pyx_v_shape = __pyx_t_9; /* … */ __pyx_t_9[0] = __pyx_v_num_threads; __pyx_t_9[1] = __pyx_v_Y0; __pyx_t_9[2] = __pyx_v_X0; __pyx_t_9[3] = 4; __pyx_v_shape = __pyx_t_9; /* … */ __pyx_t_9[0] = __pyx_v_num_threads; __pyx_t_9[1] = __pyx_v_Y0; __pyx_t_9[2] = __pyx_v_X0; __pyx_t_9[3] = 4; __pyx_v_shape = __pyx_t_9; /* … */ __pyx_t_9[0] = __pyx_v_num_threads; __pyx_t_9[1] = __pyx_v_Y0; __pyx_t_9[2] = __pyx_v_X0; __pyx_t_9[3] = 4; __pyx_v_shape = __pyx_t_9;
+0394: cdef float_t[:, :, ::1] W_buf = np.PyArray_ZEROS(3, shape, type_num, 0)
__pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 394, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_W_buf = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 394, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_W_buf = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 394, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_W_buf = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 394, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_W_buf = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL;
+0395: cdef float_t[:, :, :, ::1] M_buf = np.PyArray_ZEROS(4, shape, type_num, 0)
__pyx_t_4 = PyArray_ZEROS(4, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_d_d_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 395, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_M_buf = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(4, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_d_d_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 395, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_M_buf = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(4, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_d_d_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 395, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_M_buf = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(4, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_d_d_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 395, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_M_buf = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL;
+0396: shape[3] = 3
(__pyx_v_shape[3]) = 3; /* … */ (__pyx_v_shape[3]) = 3; /* … */ (__pyx_v_shape[3]) = 3; /* … */ (__pyx_v_shape[3]) = 3;
+0397: cdef float_t[:, :, :, ::1] I0_buf = np.PyArray_ZEROS(4, shape, type_num, 0)
__pyx_t_4 = PyArray_ZEROS(4, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_d_d_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 397, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_I0_buf = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(4, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_d_d_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 397, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_I0_buf = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(4, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_d_d_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 397, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_I0_buf = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(4, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_d_d_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 397, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_I0_buf = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL;
+0398: cdef float_t[:, :, :, ::1] W0_buf = np.PyArray_ZEROS(4, shape, type_num, 0)
__pyx_t_4 = PyArray_ZEROS(4, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_d_d_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_W0_buf = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(4, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_d_d_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_W0_buf = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(4, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_d_d_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_W0_buf = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(4, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_d_d_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_W0_buf = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL;
+0399: cdef np.ndarray I0 = np.PyArray_SimpleNew(2, shape + 1, type_num)
__pyx_t_4 = PyArray_SimpleNew(2, (__pyx_v_shape + 1), __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 399, __pyx_L1_error) __pyx_v_I0 = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_SimpleNew(2, (__pyx_v_shape + 1), __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 399, __pyx_L1_error) __pyx_v_I0 = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_SimpleNew(2, (__pyx_v_shape + 1), __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 399, __pyx_L1_error) __pyx_v_I0 = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_SimpleNew(2, (__pyx_v_shape + 1), __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 399, __pyx_L1_error) __pyx_v_I0 = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0;
0400:
+0401: if Y0 > 1:
__pyx_t_1 = ((__pyx_v_Y0 > 1) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L6;
}
/* … */
__pyx_t_1 = ((__pyx_v_Y0 > 1) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L6;
}
/* … */
__pyx_t_1 = ((__pyx_v_Y0 > 1) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L6;
}
/* … */
__pyx_t_1 = ((__pyx_v_Y0 > 1) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L6;
}
+0402: for i in prange(N, schedule='guided', num_threads=num_threads, nogil=True):
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_12 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_14 = (__pyx_t_12 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_14 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_12 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_14 = (__pyx_t_12 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_14 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_14; __pyx_t_13++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_13);
/* Initialize private variables to invalid values */
__pyx_v_t = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L9;
}
__pyx_L9:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_12 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_14 = (__pyx_t_12 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_14 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_12 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_14 = (__pyx_t_12 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_14 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_14; __pyx_t_13++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_13);
/* Initialize private variables to invalid values */
__pyx_v_t = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L9;
}
__pyx_L9:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_12 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_14 = (__pyx_t_12 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_14 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_12 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_14 = (__pyx_t_12 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_14 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_14; __pyx_t_13++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_13);
/* Initialize private variables to invalid values */
__pyx_v_t = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L9;
}
__pyx_L9:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_12 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_14 = (__pyx_t_12 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_14 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_12 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_14 = (__pyx_t_12 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_14 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_14; __pyx_t_13++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_13);
/* Initialize private variables to invalid values */
__pyx_v_t = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L9;
}
__pyx_L9:;
}
}
+0403: t = openmp.omp_get_thread_num()
__pyx_v_t = omp_get_thread_num();
/* … */
__pyx_v_t = omp_get_thread_num();
/* … */
__pyx_v_t = omp_get_thread_num();
/* … */
__pyx_v_t = omp_get_thread_num();
+0404: LOWESS_frame_2d(W_buf[t], M_buf[t], I0_buf[t], W0_buf[t], I_n[i], W, u,
__pyx_t_15.data = __pyx_v_W_buf.data;
__pyx_t_15.memview = __pyx_v_W_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_15, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_W_buf.strides[0];
__pyx_t_15.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_15.shape[0] = __pyx_v_W_buf.shape[1];
__pyx_t_15.strides[0] = __pyx_v_W_buf.strides[1];
__pyx_t_15.suboffsets[0] = -1;
__pyx_t_15.shape[1] = __pyx_v_W_buf.shape[2];
__pyx_t_15.strides[1] = __pyx_v_W_buf.strides[2];
__pyx_t_15.suboffsets[1] = -1;
__pyx_t_10.data = __pyx_v_M_buf.data;
__pyx_t_10.memview = __pyx_v_M_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_10, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_M_buf.strides[0];
__pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_10.shape[0] = __pyx_v_M_buf.shape[1];
__pyx_t_10.strides[0] = __pyx_v_M_buf.strides[1];
__pyx_t_10.suboffsets[0] = -1;
__pyx_t_10.shape[1] = __pyx_v_M_buf.shape[2];
__pyx_t_10.strides[1] = __pyx_v_M_buf.strides[2];
__pyx_t_10.suboffsets[1] = -1;
__pyx_t_10.shape[2] = __pyx_v_M_buf.shape[3];
__pyx_t_10.strides[2] = __pyx_v_M_buf.strides[3];
__pyx_t_10.suboffsets[2] = -1;
__pyx_t_16.data = __pyx_v_I0_buf.data;
__pyx_t_16.memview = __pyx_v_I0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_16, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I0_buf.strides[0];
__pyx_t_16.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_16.shape[0] = __pyx_v_I0_buf.shape[1];
__pyx_t_16.strides[0] = __pyx_v_I0_buf.strides[1];
__pyx_t_16.suboffsets[0] = -1;
__pyx_t_16.shape[1] = __pyx_v_I0_buf.shape[2];
__pyx_t_16.strides[1] = __pyx_v_I0_buf.strides[2];
__pyx_t_16.suboffsets[1] = -1;
__pyx_t_16.shape[2] = __pyx_v_I0_buf.shape[3];
__pyx_t_16.strides[2] = __pyx_v_I0_buf.strides[3];
__pyx_t_16.suboffsets[2] = -1;
__pyx_t_17.data = __pyx_v_W0_buf.data;
__pyx_t_17.memview = __pyx_v_W0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_17, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_W0_buf.strides[0];
__pyx_t_17.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_17.shape[0] = __pyx_v_W0_buf.shape[1];
__pyx_t_17.strides[0] = __pyx_v_W0_buf.strides[1];
__pyx_t_17.suboffsets[0] = -1;
__pyx_t_17.shape[1] = __pyx_v_W0_buf.shape[2];
__pyx_t_17.strides[1] = __pyx_v_W0_buf.strides[2];
__pyx_t_17.suboffsets[1] = -1;
__pyx_t_17.shape[2] = __pyx_v_W0_buf.shape[3];
__pyx_t_17.strides[2] = __pyx_v_W0_buf.strides[3];
__pyx_t_17.suboffsets[2] = -1;
__pyx_t_18.data = __pyx_v_I_n.data;
__pyx_t_18.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_18, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_18.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_18.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_18.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_18.suboffsets[0] = -1;
__pyx_t_18.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_18.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_18.suboffsets[1] = -1;
/* … */
__pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_LOWESS_frame_2d(__pyx_t_15, __pyx_t_10, __pyx_t_16, __pyx_t_17, __pyx_t_18, __pyx_v_W, __pyx_v_u, ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_di.data) + __pyx_t_5)) ))) - __pyx_v_n0), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dj.data) + __pyx_t_6)) ))) - __pyx_v_m0), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h);
__PYX_XDEC_MEMVIEW(&__pyx_t_15, 0);
__pyx_t_15.memview = NULL;
__pyx_t_15.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 0);
__pyx_t_10.memview = NULL;
__pyx_t_10.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 0);
__pyx_t_16.memview = NULL;
__pyx_t_16.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_17, 0);
__pyx_t_17.memview = NULL;
__pyx_t_17.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_18, 0);
__pyx_t_18.memview = NULL;
__pyx_t_18.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_15.data = __pyx_v_W_buf.data;
__pyx_t_15.memview = __pyx_v_W_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_15, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_W_buf.strides[0];
__pyx_t_15.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_15.shape[0] = __pyx_v_W_buf.shape[1];
__pyx_t_15.strides[0] = __pyx_v_W_buf.strides[1];
__pyx_t_15.suboffsets[0] = -1;
__pyx_t_15.shape[1] = __pyx_v_W_buf.shape[2];
__pyx_t_15.strides[1] = __pyx_v_W_buf.strides[2];
__pyx_t_15.suboffsets[1] = -1;
__pyx_t_10.data = __pyx_v_M_buf.data;
__pyx_t_10.memview = __pyx_v_M_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_10, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_M_buf.strides[0];
__pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_10.shape[0] = __pyx_v_M_buf.shape[1];
__pyx_t_10.strides[0] = __pyx_v_M_buf.strides[1];
__pyx_t_10.suboffsets[0] = -1;
__pyx_t_10.shape[1] = __pyx_v_M_buf.shape[2];
__pyx_t_10.strides[1] = __pyx_v_M_buf.strides[2];
__pyx_t_10.suboffsets[1] = -1;
__pyx_t_10.shape[2] = __pyx_v_M_buf.shape[3];
__pyx_t_10.strides[2] = __pyx_v_M_buf.strides[3];
__pyx_t_10.suboffsets[2] = -1;
__pyx_t_16.data = __pyx_v_I0_buf.data;
__pyx_t_16.memview = __pyx_v_I0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_16, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I0_buf.strides[0];
__pyx_t_16.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_16.shape[0] = __pyx_v_I0_buf.shape[1];
__pyx_t_16.strides[0] = __pyx_v_I0_buf.strides[1];
__pyx_t_16.suboffsets[0] = -1;
__pyx_t_16.shape[1] = __pyx_v_I0_buf.shape[2];
__pyx_t_16.strides[1] = __pyx_v_I0_buf.strides[2];
__pyx_t_16.suboffsets[1] = -1;
__pyx_t_16.shape[2] = __pyx_v_I0_buf.shape[3];
__pyx_t_16.strides[2] = __pyx_v_I0_buf.strides[3];
__pyx_t_16.suboffsets[2] = -1;
__pyx_t_17.data = __pyx_v_W0_buf.data;
__pyx_t_17.memview = __pyx_v_W0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_17, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_W0_buf.strides[0];
__pyx_t_17.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_17.shape[0] = __pyx_v_W0_buf.shape[1];
__pyx_t_17.strides[0] = __pyx_v_W0_buf.strides[1];
__pyx_t_17.suboffsets[0] = -1;
__pyx_t_17.shape[1] = __pyx_v_W0_buf.shape[2];
__pyx_t_17.strides[1] = __pyx_v_W0_buf.strides[2];
__pyx_t_17.suboffsets[1] = -1;
__pyx_t_17.shape[2] = __pyx_v_W0_buf.shape[3];
__pyx_t_17.strides[2] = __pyx_v_W0_buf.strides[3];
__pyx_t_17.suboffsets[2] = -1;
__pyx_t_18.data = __pyx_v_I_n.data;
__pyx_t_18.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_18, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_18.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_18.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_18.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_18.suboffsets[0] = -1;
__pyx_t_18.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_18.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_18.suboffsets[1] = -1;
/* … */
__pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_LOWESS_frame_2d(__pyx_t_15, __pyx_t_10, __pyx_t_16, __pyx_t_17, __pyx_t_18, __pyx_v_W, __pyx_v_u, ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_di.data) + __pyx_t_5)) ))) - __pyx_v_n0), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dj.data) + __pyx_t_6)) ))) - __pyx_v_m0), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h);
__PYX_XDEC_MEMVIEW(&__pyx_t_15, 0);
__pyx_t_15.memview = NULL;
__pyx_t_15.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 0);
__pyx_t_10.memview = NULL;
__pyx_t_10.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 0);
__pyx_t_16.memview = NULL;
__pyx_t_16.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_17, 0);
__pyx_t_17.memview = NULL;
__pyx_t_17.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_18, 0);
__pyx_t_18.memview = NULL;
__pyx_t_18.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_15.data = __pyx_v_W_buf.data;
__pyx_t_15.memview = __pyx_v_W_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_15, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_W_buf.strides[0];
__pyx_t_15.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_15.shape[0] = __pyx_v_W_buf.shape[1];
__pyx_t_15.strides[0] = __pyx_v_W_buf.strides[1];
__pyx_t_15.suboffsets[0] = -1;
__pyx_t_15.shape[1] = __pyx_v_W_buf.shape[2];
__pyx_t_15.strides[1] = __pyx_v_W_buf.strides[2];
__pyx_t_15.suboffsets[1] = -1;
__pyx_t_10.data = __pyx_v_M_buf.data;
__pyx_t_10.memview = __pyx_v_M_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_10, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_M_buf.strides[0];
__pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_10.shape[0] = __pyx_v_M_buf.shape[1];
__pyx_t_10.strides[0] = __pyx_v_M_buf.strides[1];
__pyx_t_10.suboffsets[0] = -1;
__pyx_t_10.shape[1] = __pyx_v_M_buf.shape[2];
__pyx_t_10.strides[1] = __pyx_v_M_buf.strides[2];
__pyx_t_10.suboffsets[1] = -1;
__pyx_t_10.shape[2] = __pyx_v_M_buf.shape[3];
__pyx_t_10.strides[2] = __pyx_v_M_buf.strides[3];
__pyx_t_10.suboffsets[2] = -1;
__pyx_t_16.data = __pyx_v_I0_buf.data;
__pyx_t_16.memview = __pyx_v_I0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_16, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I0_buf.strides[0];
__pyx_t_16.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_16.shape[0] = __pyx_v_I0_buf.shape[1];
__pyx_t_16.strides[0] = __pyx_v_I0_buf.strides[1];
__pyx_t_16.suboffsets[0] = -1;
__pyx_t_16.shape[1] = __pyx_v_I0_buf.shape[2];
__pyx_t_16.strides[1] = __pyx_v_I0_buf.strides[2];
__pyx_t_16.suboffsets[1] = -1;
__pyx_t_16.shape[2] = __pyx_v_I0_buf.shape[3];
__pyx_t_16.strides[2] = __pyx_v_I0_buf.strides[3];
__pyx_t_16.suboffsets[2] = -1;
__pyx_t_17.data = __pyx_v_W0_buf.data;
__pyx_t_17.memview = __pyx_v_W0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_17, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_W0_buf.strides[0];
__pyx_t_17.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_17.shape[0] = __pyx_v_W0_buf.shape[1];
__pyx_t_17.strides[0] = __pyx_v_W0_buf.strides[1];
__pyx_t_17.suboffsets[0] = -1;
__pyx_t_17.shape[1] = __pyx_v_W0_buf.shape[2];
__pyx_t_17.strides[1] = __pyx_v_W0_buf.strides[2];
__pyx_t_17.suboffsets[1] = -1;
__pyx_t_17.shape[2] = __pyx_v_W0_buf.shape[3];
__pyx_t_17.strides[2] = __pyx_v_W0_buf.strides[3];
__pyx_t_17.suboffsets[2] = -1;
__pyx_t_18.data = __pyx_v_I_n.data;
__pyx_t_18.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_18, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_18.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_18.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_18.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_18.suboffsets[0] = -1;
__pyx_t_18.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_18.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_18.suboffsets[1] = -1;
/* … */
__pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_LOWESS_frame_2d(__pyx_t_15, __pyx_t_10, __pyx_t_16, __pyx_t_17, __pyx_t_18, __pyx_v_W, __pyx_v_u, ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_di.data) + __pyx_t_5)) ))) - __pyx_v_n0), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dj.data) + __pyx_t_6)) ))) - __pyx_v_m0), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h);
__PYX_XDEC_MEMVIEW(&__pyx_t_15, 0);
__pyx_t_15.memview = NULL;
__pyx_t_15.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 0);
__pyx_t_10.memview = NULL;
__pyx_t_10.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 0);
__pyx_t_16.memview = NULL;
__pyx_t_16.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_17, 0);
__pyx_t_17.memview = NULL;
__pyx_t_17.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_18, 0);
__pyx_t_18.memview = NULL;
__pyx_t_18.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_15.data = __pyx_v_W_buf.data;
__pyx_t_15.memview = __pyx_v_W_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_15, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_W_buf.strides[0];
__pyx_t_15.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_15.shape[0] = __pyx_v_W_buf.shape[1];
__pyx_t_15.strides[0] = __pyx_v_W_buf.strides[1];
__pyx_t_15.suboffsets[0] = -1;
__pyx_t_15.shape[1] = __pyx_v_W_buf.shape[2];
__pyx_t_15.strides[1] = __pyx_v_W_buf.strides[2];
__pyx_t_15.suboffsets[1] = -1;
__pyx_t_10.data = __pyx_v_M_buf.data;
__pyx_t_10.memview = __pyx_v_M_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_10, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_M_buf.strides[0];
__pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_10.shape[0] = __pyx_v_M_buf.shape[1];
__pyx_t_10.strides[0] = __pyx_v_M_buf.strides[1];
__pyx_t_10.suboffsets[0] = -1;
__pyx_t_10.shape[1] = __pyx_v_M_buf.shape[2];
__pyx_t_10.strides[1] = __pyx_v_M_buf.strides[2];
__pyx_t_10.suboffsets[1] = -1;
__pyx_t_10.shape[2] = __pyx_v_M_buf.shape[3];
__pyx_t_10.strides[2] = __pyx_v_M_buf.strides[3];
__pyx_t_10.suboffsets[2] = -1;
__pyx_t_16.data = __pyx_v_I0_buf.data;
__pyx_t_16.memview = __pyx_v_I0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_16, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I0_buf.strides[0];
__pyx_t_16.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_16.shape[0] = __pyx_v_I0_buf.shape[1];
__pyx_t_16.strides[0] = __pyx_v_I0_buf.strides[1];
__pyx_t_16.suboffsets[0] = -1;
__pyx_t_16.shape[1] = __pyx_v_I0_buf.shape[2];
__pyx_t_16.strides[1] = __pyx_v_I0_buf.strides[2];
__pyx_t_16.suboffsets[1] = -1;
__pyx_t_16.shape[2] = __pyx_v_I0_buf.shape[3];
__pyx_t_16.strides[2] = __pyx_v_I0_buf.strides[3];
__pyx_t_16.suboffsets[2] = -1;
__pyx_t_17.data = __pyx_v_W0_buf.data;
__pyx_t_17.memview = __pyx_v_W0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_17, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_W0_buf.strides[0];
__pyx_t_17.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_17.shape[0] = __pyx_v_W0_buf.shape[1];
__pyx_t_17.strides[0] = __pyx_v_W0_buf.strides[1];
__pyx_t_17.suboffsets[0] = -1;
__pyx_t_17.shape[1] = __pyx_v_W0_buf.shape[2];
__pyx_t_17.strides[1] = __pyx_v_W0_buf.strides[2];
__pyx_t_17.suboffsets[1] = -1;
__pyx_t_17.shape[2] = __pyx_v_W0_buf.shape[3];
__pyx_t_17.strides[2] = __pyx_v_W0_buf.strides[3];
__pyx_t_17.suboffsets[2] = -1;
__pyx_t_18.data = __pyx_v_I_n.data;
__pyx_t_18.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_18, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_18.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_18.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_18.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_18.suboffsets[0] = -1;
__pyx_t_18.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_18.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_18.suboffsets[1] = -1;
/* … */
__pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_LOWESS_frame_2d(__pyx_t_15, __pyx_t_10, __pyx_t_16, __pyx_t_17, __pyx_t_18, __pyx_v_W, __pyx_v_u, ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_di.data) + __pyx_t_5)) ))) - __pyx_v_n0), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dj.data) + __pyx_t_6)) ))) - __pyx_v_m0), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h);
__PYX_XDEC_MEMVIEW(&__pyx_t_15, 0);
__pyx_t_15.memview = NULL;
__pyx_t_15.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 0);
__pyx_t_10.memview = NULL;
__pyx_t_10.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 0);
__pyx_t_16.memview = NULL;
__pyx_t_16.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_17, 0);
__pyx_t_17.memview = NULL;
__pyx_t_17.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_18, 0);
__pyx_t_18.memview = NULL;
__pyx_t_18.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
+0405: di[i] - n0, dj[i] - m0, ds_y, ds_x, h)
__pyx_t_5 = __pyx_v_i;
/* … */
__pyx_t_6 = __pyx_v_i;
__pyx_t_5 = __pyx_v_i;
/* … */
__pyx_t_6 = __pyx_v_i;
__pyx_t_5 = __pyx_v_i;
/* … */
__pyx_t_6 = __pyx_v_i;
__pyx_t_5 = __pyx_v_i;
/* … */
__pyx_t_6 = __pyx_v_i;
0406: else:
+0407: for i in prange(N, schedule='guided', num_threads=num_threads, nogil=True):
/*else*/ {
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_14 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_12 = (__pyx_t_14 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_12 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_14 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_12 = (__pyx_t_14 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_12 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_13);
/* Initialize private variables to invalid values */
__pyx_v_t = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L18;
}
__pyx_L18:;
}
}
}
__pyx_L6:;
/* … */
/*else*/ {
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_14 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_12 = (__pyx_t_14 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_12 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_14 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_12 = (__pyx_t_14 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_12 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_13);
/* Initialize private variables to invalid values */
__pyx_v_t = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L18;
}
__pyx_L18:;
}
}
}
__pyx_L6:;
/* … */
/*else*/ {
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_14 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_12 = (__pyx_t_14 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_12 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_14 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_12 = (__pyx_t_14 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_12 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_13);
/* Initialize private variables to invalid values */
__pyx_v_t = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L18;
}
__pyx_L18:;
}
}
}
__pyx_L6:;
/* … */
/*else*/ {
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_14 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_12 = (__pyx_t_14 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_12 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_14 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_12 = (__pyx_t_14 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_12 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_13);
/* Initialize private variables to invalid values */
__pyx_v_t = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L18;
}
__pyx_L18:;
}
}
}
__pyx_L6:;
+0408: t = openmp.omp_get_thread_num()
__pyx_v_t = omp_get_thread_num();
/* … */
__pyx_v_t = omp_get_thread_num();
/* … */
__pyx_v_t = omp_get_thread_num();
/* … */
__pyx_v_t = omp_get_thread_num();
+0409: LOWESS_frame_1d(W_buf[t], M_buf[t], I0_buf[t], W0_buf[t], I_n[i], W, u,
__pyx_t_15.data = __pyx_v_W_buf.data;
__pyx_t_15.memview = __pyx_v_W_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_15, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_W_buf.strides[0];
__pyx_t_15.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_15.shape[0] = __pyx_v_W_buf.shape[1];
__pyx_t_15.strides[0] = __pyx_v_W_buf.strides[1];
__pyx_t_15.suboffsets[0] = -1;
__pyx_t_15.shape[1] = __pyx_v_W_buf.shape[2];
__pyx_t_15.strides[1] = __pyx_v_W_buf.strides[2];
__pyx_t_15.suboffsets[1] = -1;
__pyx_t_17.data = __pyx_v_M_buf.data;
__pyx_t_17.memview = __pyx_v_M_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_17, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_M_buf.strides[0];
__pyx_t_17.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_17.shape[0] = __pyx_v_M_buf.shape[1];
__pyx_t_17.strides[0] = __pyx_v_M_buf.strides[1];
__pyx_t_17.suboffsets[0] = -1;
__pyx_t_17.shape[1] = __pyx_v_M_buf.shape[2];
__pyx_t_17.strides[1] = __pyx_v_M_buf.strides[2];
__pyx_t_17.suboffsets[1] = -1;
__pyx_t_17.shape[2] = __pyx_v_M_buf.shape[3];
__pyx_t_17.strides[2] = __pyx_v_M_buf.strides[3];
__pyx_t_17.suboffsets[2] = -1;
__pyx_t_16.data = __pyx_v_I0_buf.data;
__pyx_t_16.memview = __pyx_v_I0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_16, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I0_buf.strides[0];
__pyx_t_16.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_16.shape[0] = __pyx_v_I0_buf.shape[1];
__pyx_t_16.strides[0] = __pyx_v_I0_buf.strides[1];
__pyx_t_16.suboffsets[0] = -1;
__pyx_t_16.shape[1] = __pyx_v_I0_buf.shape[2];
__pyx_t_16.strides[1] = __pyx_v_I0_buf.strides[2];
__pyx_t_16.suboffsets[1] = -1;
__pyx_t_16.shape[2] = __pyx_v_I0_buf.shape[3];
__pyx_t_16.strides[2] = __pyx_v_I0_buf.strides[3];
__pyx_t_16.suboffsets[2] = -1;
__pyx_t_10.data = __pyx_v_W0_buf.data;
__pyx_t_10.memview = __pyx_v_W0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_10, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_W0_buf.strides[0];
__pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_10.shape[0] = __pyx_v_W0_buf.shape[1];
__pyx_t_10.strides[0] = __pyx_v_W0_buf.strides[1];
__pyx_t_10.suboffsets[0] = -1;
__pyx_t_10.shape[1] = __pyx_v_W0_buf.shape[2];
__pyx_t_10.strides[1] = __pyx_v_W0_buf.strides[2];
__pyx_t_10.suboffsets[1] = -1;
__pyx_t_10.shape[2] = __pyx_v_W0_buf.shape[3];
__pyx_t_10.strides[2] = __pyx_v_W0_buf.strides[3];
__pyx_t_10.suboffsets[2] = -1;
__pyx_t_18.data = __pyx_v_I_n.data;
__pyx_t_18.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_18, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_18.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_18.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_18.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_18.suboffsets[0] = -1;
__pyx_t_18.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_18.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_18.suboffsets[1] = -1;
/* … */
__pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_LOWESS_frame_1d(__pyx_t_15, __pyx_t_17, __pyx_t_16, __pyx_t_10, __pyx_t_18, __pyx_v_W, __pyx_v_u, ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dj.data) + __pyx_t_6)) ))) - __pyx_v_m0), __pyx_v_ds_x, __pyx_v_h);
__PYX_XDEC_MEMVIEW(&__pyx_t_15, 0);
__pyx_t_15.memview = NULL;
__pyx_t_15.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_17, 0);
__pyx_t_17.memview = NULL;
__pyx_t_17.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 0);
__pyx_t_16.memview = NULL;
__pyx_t_16.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 0);
__pyx_t_10.memview = NULL;
__pyx_t_10.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_18, 0);
__pyx_t_18.memview = NULL;
__pyx_t_18.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_15.data = __pyx_v_W_buf.data;
__pyx_t_15.memview = __pyx_v_W_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_15, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_W_buf.strides[0];
__pyx_t_15.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_15.shape[0] = __pyx_v_W_buf.shape[1];
__pyx_t_15.strides[0] = __pyx_v_W_buf.strides[1];
__pyx_t_15.suboffsets[0] = -1;
__pyx_t_15.shape[1] = __pyx_v_W_buf.shape[2];
__pyx_t_15.strides[1] = __pyx_v_W_buf.strides[2];
__pyx_t_15.suboffsets[1] = -1;
__pyx_t_17.data = __pyx_v_M_buf.data;
__pyx_t_17.memview = __pyx_v_M_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_17, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_M_buf.strides[0];
__pyx_t_17.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_17.shape[0] = __pyx_v_M_buf.shape[1];
__pyx_t_17.strides[0] = __pyx_v_M_buf.strides[1];
__pyx_t_17.suboffsets[0] = -1;
__pyx_t_17.shape[1] = __pyx_v_M_buf.shape[2];
__pyx_t_17.strides[1] = __pyx_v_M_buf.strides[2];
__pyx_t_17.suboffsets[1] = -1;
__pyx_t_17.shape[2] = __pyx_v_M_buf.shape[3];
__pyx_t_17.strides[2] = __pyx_v_M_buf.strides[3];
__pyx_t_17.suboffsets[2] = -1;
__pyx_t_16.data = __pyx_v_I0_buf.data;
__pyx_t_16.memview = __pyx_v_I0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_16, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I0_buf.strides[0];
__pyx_t_16.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_16.shape[0] = __pyx_v_I0_buf.shape[1];
__pyx_t_16.strides[0] = __pyx_v_I0_buf.strides[1];
__pyx_t_16.suboffsets[0] = -1;
__pyx_t_16.shape[1] = __pyx_v_I0_buf.shape[2];
__pyx_t_16.strides[1] = __pyx_v_I0_buf.strides[2];
__pyx_t_16.suboffsets[1] = -1;
__pyx_t_16.shape[2] = __pyx_v_I0_buf.shape[3];
__pyx_t_16.strides[2] = __pyx_v_I0_buf.strides[3];
__pyx_t_16.suboffsets[2] = -1;
__pyx_t_10.data = __pyx_v_W0_buf.data;
__pyx_t_10.memview = __pyx_v_W0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_10, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_W0_buf.strides[0];
__pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_10.shape[0] = __pyx_v_W0_buf.shape[1];
__pyx_t_10.strides[0] = __pyx_v_W0_buf.strides[1];
__pyx_t_10.suboffsets[0] = -1;
__pyx_t_10.shape[1] = __pyx_v_W0_buf.shape[2];
__pyx_t_10.strides[1] = __pyx_v_W0_buf.strides[2];
__pyx_t_10.suboffsets[1] = -1;
__pyx_t_10.shape[2] = __pyx_v_W0_buf.shape[3];
__pyx_t_10.strides[2] = __pyx_v_W0_buf.strides[3];
__pyx_t_10.suboffsets[2] = -1;
__pyx_t_18.data = __pyx_v_I_n.data;
__pyx_t_18.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_18, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_18.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_18.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_18.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_18.suboffsets[0] = -1;
__pyx_t_18.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_18.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_18.suboffsets[1] = -1;
/* … */
__pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_LOWESS_frame_1d(__pyx_t_15, __pyx_t_17, __pyx_t_16, __pyx_t_10, __pyx_t_18, __pyx_v_W, __pyx_v_u, ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dj.data) + __pyx_t_6)) ))) - __pyx_v_m0), __pyx_v_ds_x, __pyx_v_h);
__PYX_XDEC_MEMVIEW(&__pyx_t_15, 0);
__pyx_t_15.memview = NULL;
__pyx_t_15.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_17, 0);
__pyx_t_17.memview = NULL;
__pyx_t_17.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 0);
__pyx_t_16.memview = NULL;
__pyx_t_16.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 0);
__pyx_t_10.memview = NULL;
__pyx_t_10.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_18, 0);
__pyx_t_18.memview = NULL;
__pyx_t_18.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_15.data = __pyx_v_W_buf.data;
__pyx_t_15.memview = __pyx_v_W_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_15, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_W_buf.strides[0];
__pyx_t_15.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_15.shape[0] = __pyx_v_W_buf.shape[1];
__pyx_t_15.strides[0] = __pyx_v_W_buf.strides[1];
__pyx_t_15.suboffsets[0] = -1;
__pyx_t_15.shape[1] = __pyx_v_W_buf.shape[2];
__pyx_t_15.strides[1] = __pyx_v_W_buf.strides[2];
__pyx_t_15.suboffsets[1] = -1;
__pyx_t_17.data = __pyx_v_M_buf.data;
__pyx_t_17.memview = __pyx_v_M_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_17, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_M_buf.strides[0];
__pyx_t_17.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_17.shape[0] = __pyx_v_M_buf.shape[1];
__pyx_t_17.strides[0] = __pyx_v_M_buf.strides[1];
__pyx_t_17.suboffsets[0] = -1;
__pyx_t_17.shape[1] = __pyx_v_M_buf.shape[2];
__pyx_t_17.strides[1] = __pyx_v_M_buf.strides[2];
__pyx_t_17.suboffsets[1] = -1;
__pyx_t_17.shape[2] = __pyx_v_M_buf.shape[3];
__pyx_t_17.strides[2] = __pyx_v_M_buf.strides[3];
__pyx_t_17.suboffsets[2] = -1;
__pyx_t_16.data = __pyx_v_I0_buf.data;
__pyx_t_16.memview = __pyx_v_I0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_16, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I0_buf.strides[0];
__pyx_t_16.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_16.shape[0] = __pyx_v_I0_buf.shape[1];
__pyx_t_16.strides[0] = __pyx_v_I0_buf.strides[1];
__pyx_t_16.suboffsets[0] = -1;
__pyx_t_16.shape[1] = __pyx_v_I0_buf.shape[2];
__pyx_t_16.strides[1] = __pyx_v_I0_buf.strides[2];
__pyx_t_16.suboffsets[1] = -1;
__pyx_t_16.shape[2] = __pyx_v_I0_buf.shape[3];
__pyx_t_16.strides[2] = __pyx_v_I0_buf.strides[3];
__pyx_t_16.suboffsets[2] = -1;
__pyx_t_10.data = __pyx_v_W0_buf.data;
__pyx_t_10.memview = __pyx_v_W0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_10, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_W0_buf.strides[0];
__pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_10.shape[0] = __pyx_v_W0_buf.shape[1];
__pyx_t_10.strides[0] = __pyx_v_W0_buf.strides[1];
__pyx_t_10.suboffsets[0] = -1;
__pyx_t_10.shape[1] = __pyx_v_W0_buf.shape[2];
__pyx_t_10.strides[1] = __pyx_v_W0_buf.strides[2];
__pyx_t_10.suboffsets[1] = -1;
__pyx_t_10.shape[2] = __pyx_v_W0_buf.shape[3];
__pyx_t_10.strides[2] = __pyx_v_W0_buf.strides[3];
__pyx_t_10.suboffsets[2] = -1;
__pyx_t_18.data = __pyx_v_I_n.data;
__pyx_t_18.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_18, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_18.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_18.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_18.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_18.suboffsets[0] = -1;
__pyx_t_18.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_18.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_18.suboffsets[1] = -1;
/* … */
__pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_LOWESS_frame_1d(__pyx_t_15, __pyx_t_17, __pyx_t_16, __pyx_t_10, __pyx_t_18, __pyx_v_W, __pyx_v_u, ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dj.data) + __pyx_t_6)) ))) - __pyx_v_m0), __pyx_v_ds_x, __pyx_v_h);
__PYX_XDEC_MEMVIEW(&__pyx_t_15, 0);
__pyx_t_15.memview = NULL;
__pyx_t_15.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_17, 0);
__pyx_t_17.memview = NULL;
__pyx_t_17.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 0);
__pyx_t_16.memview = NULL;
__pyx_t_16.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 0);
__pyx_t_10.memview = NULL;
__pyx_t_10.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_18, 0);
__pyx_t_18.memview = NULL;
__pyx_t_18.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_15.data = __pyx_v_W_buf.data;
__pyx_t_15.memview = __pyx_v_W_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_15, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_W_buf.strides[0];
__pyx_t_15.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_15.shape[0] = __pyx_v_W_buf.shape[1];
__pyx_t_15.strides[0] = __pyx_v_W_buf.strides[1];
__pyx_t_15.suboffsets[0] = -1;
__pyx_t_15.shape[1] = __pyx_v_W_buf.shape[2];
__pyx_t_15.strides[1] = __pyx_v_W_buf.strides[2];
__pyx_t_15.suboffsets[1] = -1;
__pyx_t_17.data = __pyx_v_M_buf.data;
__pyx_t_17.memview = __pyx_v_M_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_17, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_M_buf.strides[0];
__pyx_t_17.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_17.shape[0] = __pyx_v_M_buf.shape[1];
__pyx_t_17.strides[0] = __pyx_v_M_buf.strides[1];
__pyx_t_17.suboffsets[0] = -1;
__pyx_t_17.shape[1] = __pyx_v_M_buf.shape[2];
__pyx_t_17.strides[1] = __pyx_v_M_buf.strides[2];
__pyx_t_17.suboffsets[1] = -1;
__pyx_t_17.shape[2] = __pyx_v_M_buf.shape[3];
__pyx_t_17.strides[2] = __pyx_v_M_buf.strides[3];
__pyx_t_17.suboffsets[2] = -1;
__pyx_t_16.data = __pyx_v_I0_buf.data;
__pyx_t_16.memview = __pyx_v_I0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_16, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I0_buf.strides[0];
__pyx_t_16.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_16.shape[0] = __pyx_v_I0_buf.shape[1];
__pyx_t_16.strides[0] = __pyx_v_I0_buf.strides[1];
__pyx_t_16.suboffsets[0] = -1;
__pyx_t_16.shape[1] = __pyx_v_I0_buf.shape[2];
__pyx_t_16.strides[1] = __pyx_v_I0_buf.strides[2];
__pyx_t_16.suboffsets[1] = -1;
__pyx_t_16.shape[2] = __pyx_v_I0_buf.shape[3];
__pyx_t_16.strides[2] = __pyx_v_I0_buf.strides[3];
__pyx_t_16.suboffsets[2] = -1;
__pyx_t_10.data = __pyx_v_W0_buf.data;
__pyx_t_10.memview = __pyx_v_W0_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_10, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_W0_buf.strides[0];
__pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_10.shape[0] = __pyx_v_W0_buf.shape[1];
__pyx_t_10.strides[0] = __pyx_v_W0_buf.strides[1];
__pyx_t_10.suboffsets[0] = -1;
__pyx_t_10.shape[1] = __pyx_v_W0_buf.shape[2];
__pyx_t_10.strides[1] = __pyx_v_W0_buf.strides[2];
__pyx_t_10.suboffsets[1] = -1;
__pyx_t_10.shape[2] = __pyx_v_W0_buf.shape[3];
__pyx_t_10.strides[2] = __pyx_v_W0_buf.strides[3];
__pyx_t_10.suboffsets[2] = -1;
__pyx_t_18.data = __pyx_v_I_n.data;
__pyx_t_18.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_18, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_18.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_18.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_18.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_18.suboffsets[0] = -1;
__pyx_t_18.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_18.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_18.suboffsets[1] = -1;
/* … */
__pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_LOWESS_frame_1d(__pyx_t_15, __pyx_t_17, __pyx_t_16, __pyx_t_10, __pyx_t_18, __pyx_v_W, __pyx_v_u, ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dj.data) + __pyx_t_6)) ))) - __pyx_v_m0), __pyx_v_ds_x, __pyx_v_h);
__PYX_XDEC_MEMVIEW(&__pyx_t_15, 0);
__pyx_t_15.memview = NULL;
__pyx_t_15.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_17, 0);
__pyx_t_17.memview = NULL;
__pyx_t_17.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 0);
__pyx_t_16.memview = NULL;
__pyx_t_16.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 0);
__pyx_t_10.memview = NULL;
__pyx_t_10.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_18, 0);
__pyx_t_18.memview = NULL;
__pyx_t_18.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
+0410: dj[i] - m0, ds_x, h)
__pyx_t_6 = __pyx_v_i; __pyx_t_6 = __pyx_v_i; __pyx_t_6 = __pyx_v_i; __pyx_t_6 = __pyx_v_i;
0411:
+0412: cdef float_t[:, ::1] _I0 = I0
__pyx_t_15 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(((PyObject *)__pyx_v_I0), PyBUF_WRITABLE); if (unlikely(!__pyx_t_15.memview)) __PYX_ERR(0, 412, __pyx_L1_error) __pyx_v__I0 = __pyx_t_15; __pyx_t_15.memview = NULL; __pyx_t_15.data = NULL; /* … */ __pyx_t_15 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(((PyObject *)__pyx_v_I0), PyBUF_WRITABLE); if (unlikely(!__pyx_t_15.memview)) __PYX_ERR(0, 412, __pyx_L1_error) __pyx_v__I0 = __pyx_t_15; __pyx_t_15.memview = NULL; __pyx_t_15.data = NULL; /* … */ __pyx_t_15 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(((PyObject *)__pyx_v_I0), PyBUF_WRITABLE); if (unlikely(!__pyx_t_15.memview)) __PYX_ERR(0, 412, __pyx_L1_error) __pyx_v__I0 = __pyx_t_15; __pyx_t_15.memview = NULL; __pyx_t_15.data = NULL; /* … */ __pyx_t_15 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(((PyObject *)__pyx_v_I0), PyBUF_WRITABLE); if (unlikely(!__pyx_t_15.memview)) __PYX_ERR(0, 412, __pyx_L1_error) __pyx_v__I0 = __pyx_t_15; __pyx_t_15.memview = NULL; __pyx_t_15.data = NULL;
0413: cdef float_t W_sum, w, betta_y, betta_x, var_y, var_x, I0_pred, W0_pred
0414: cdef float_t *M_mat
0415: cdef float_t *I0_mat
0416: cdef float_t *W0_mat
0417:
+0418: with nogil, parallel(num_threads=num_threads):
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_I0_mat, __pyx_v_M_mat, __pyx_v_W0_mat) {
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_I0_mat, __pyx_v_M_mat, __pyx_v_W0_mat) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
{
/* Initialize private variables to invalid values */
__pyx_v_I0_mat = ((__pyx_t_5numpy_float64_t *)1);
__pyx_v_M_mat = ((__pyx_t_5numpy_float64_t *)1);
__pyx_v_W0_mat = ((__pyx_t_5numpy_float64_t *)1);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L27;
}
__pyx_L27:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_I0_mat, __pyx_v_M_mat, __pyx_v_W0_mat) {
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_I0_mat, __pyx_v_M_mat, __pyx_v_W0_mat) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
{
/* Initialize private variables to invalid values */
__pyx_v_I0_mat = ((__pyx_t_5numpy_float32_t *)1);
__pyx_v_M_mat = ((__pyx_t_5numpy_float32_t *)1);
__pyx_v_W0_mat = ((__pyx_t_5numpy_float32_t *)1);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L27;
}
__pyx_L27:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_I0_mat, __pyx_v_M_mat, __pyx_v_W0_mat) {
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_I0_mat, __pyx_v_M_mat, __pyx_v_W0_mat) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
{
/* Initialize private variables to invalid values */
__pyx_v_I0_mat = ((__pyx_t_5numpy_float64_t *)1);
__pyx_v_M_mat = ((__pyx_t_5numpy_float64_t *)1);
__pyx_v_W0_mat = ((__pyx_t_5numpy_float64_t *)1);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L27;
}
__pyx_L27:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_I0_mat, __pyx_v_M_mat, __pyx_v_W0_mat) {
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_I0_mat, __pyx_v_M_mat, __pyx_v_W0_mat) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
{
/* Initialize private variables to invalid values */
__pyx_v_I0_mat = ((__pyx_t_5numpy_float32_t *)1);
__pyx_v_M_mat = ((__pyx_t_5numpy_float32_t *)1);
__pyx_v_W0_mat = ((__pyx_t_5numpy_float32_t *)1);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L27;
}
__pyx_L27:;
}
}
+0419: M_mat = <float_t *>malloc(4 * sizeof(float_t))
__pyx_v_M_mat = ((__pyx_t_5numpy_float64_t *)malloc((4 * (sizeof(__pyx_t_5numpy_float64_t)))));
/* … */
__pyx_v_M_mat = ((__pyx_t_5numpy_float32_t *)malloc((4 * (sizeof(__pyx_t_5numpy_float32_t)))));
/* … */
__pyx_v_M_mat = ((__pyx_t_5numpy_float64_t *)malloc((4 * (sizeof(__pyx_t_5numpy_float64_t)))));
/* … */
__pyx_v_M_mat = ((__pyx_t_5numpy_float32_t *)malloc((4 * (sizeof(__pyx_t_5numpy_float32_t)))));
+0420: I0_mat = <float_t *>malloc(3 * sizeof(float_t))
__pyx_v_I0_mat = ((__pyx_t_5numpy_float64_t *)malloc((3 * (sizeof(__pyx_t_5numpy_float64_t)))));
/* … */
__pyx_v_I0_mat = ((__pyx_t_5numpy_float32_t *)malloc((3 * (sizeof(__pyx_t_5numpy_float32_t)))));
/* … */
__pyx_v_I0_mat = ((__pyx_t_5numpy_float64_t *)malloc((3 * (sizeof(__pyx_t_5numpy_float64_t)))));
/* … */
__pyx_v_I0_mat = ((__pyx_t_5numpy_float32_t *)malloc((3 * (sizeof(__pyx_t_5numpy_float32_t)))));
+0421: W0_mat = <float_t *>malloc(3 * sizeof(float_t))
__pyx_v_W0_mat = ((__pyx_t_5numpy_float64_t *)malloc((3 * (sizeof(__pyx_t_5numpy_float64_t)))));
/* … */
__pyx_v_W0_mat = ((__pyx_t_5numpy_float32_t *)malloc((3 * (sizeof(__pyx_t_5numpy_float32_t)))));
/* … */
__pyx_v_W0_mat = ((__pyx_t_5numpy_float64_t *)malloc((3 * (sizeof(__pyx_t_5numpy_float64_t)))));
/* … */
__pyx_v_W0_mat = ((__pyx_t_5numpy_float32_t *)malloc((3 * (sizeof(__pyx_t_5numpy_float32_t)))));
0422:
+0423: for k in prange(X0, schedule='guided'):
__pyx_t_12 = __pyx_v_X0;
if ((1 == 0)) abort();
{
__pyx_t_14 = (__pyx_t_12 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_14 > 0)
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_I0_pred) lastprivate(__pyx_v_W0_pred) lastprivate(__pyx_v_W_sum) lastprivate(__pyx_v_betta_x) lastprivate(__pyx_v_betta_y) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) lastprivate(__pyx_v_t) lastprivate(__pyx_v_var_x) lastprivate(__pyx_v_var_y) lastprivate(__pyx_v_w) schedule(guided)
#endif /* _OPENMP */
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_14; __pyx_t_13++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_13);
/* Initialize private variables to invalid values */
__pyx_v_I0_pred = ((__pyx_t_5numpy_float64_t)__PYX_NAN());
__pyx_v_W0_pred = ((__pyx_t_5numpy_float64_t)__PYX_NAN());
__pyx_v_W_sum = ((__pyx_t_5numpy_float64_t)__PYX_NAN());
__pyx_v_betta_x = ((__pyx_t_5numpy_float64_t)__PYX_NAN());
__pyx_v_betta_y = ((__pyx_t_5numpy_float64_t)__PYX_NAN());
__pyx_v_i = ((int)0xbad0bad0);
__pyx_v_j = ((int)0xbad0bad0);
__pyx_v_t = ((int)0xbad0bad0);
__pyx_v_var_x = ((__pyx_t_5numpy_float64_t)__PYX_NAN());
__pyx_v_var_y = ((__pyx_t_5numpy_float64_t)__PYX_NAN());
__pyx_v_w = ((__pyx_t_5numpy_float64_t)__PYX_NAN());
/* … */
__pyx_t_12 = __pyx_v_X0;
if ((1 == 0)) abort();
{
__pyx_t_14 = (__pyx_t_12 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_14 > 0)
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_I0_pred) lastprivate(__pyx_v_W0_pred) lastprivate(__pyx_v_W_sum) lastprivate(__pyx_v_betta_x) lastprivate(__pyx_v_betta_y) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) lastprivate(__pyx_v_t) lastprivate(__pyx_v_var_x) lastprivate(__pyx_v_var_y) lastprivate(__pyx_v_w) schedule(guided)
#endif /* _OPENMP */
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_14; __pyx_t_13++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_13);
/* Initialize private variables to invalid values */
__pyx_v_I0_pred = ((__pyx_t_5numpy_float32_t)__PYX_NAN());
__pyx_v_W0_pred = ((__pyx_t_5numpy_float32_t)__PYX_NAN());
__pyx_v_W_sum = ((__pyx_t_5numpy_float32_t)__PYX_NAN());
__pyx_v_betta_x = ((__pyx_t_5numpy_float32_t)__PYX_NAN());
__pyx_v_betta_y = ((__pyx_t_5numpy_float32_t)__PYX_NAN());
__pyx_v_i = ((int)0xbad0bad0);
__pyx_v_j = ((int)0xbad0bad0);
__pyx_v_t = ((int)0xbad0bad0);
__pyx_v_var_x = ((__pyx_t_5numpy_float32_t)__PYX_NAN());
__pyx_v_var_y = ((__pyx_t_5numpy_float32_t)__PYX_NAN());
__pyx_v_w = ((__pyx_t_5numpy_float32_t)__PYX_NAN());
/* … */
__pyx_t_12 = __pyx_v_X0;
if ((1 == 0)) abort();
{
__pyx_t_14 = (__pyx_t_12 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_14 > 0)
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_I0_pred) lastprivate(__pyx_v_W0_pred) lastprivate(__pyx_v_W_sum) lastprivate(__pyx_v_betta_x) lastprivate(__pyx_v_betta_y) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) lastprivate(__pyx_v_t) lastprivate(__pyx_v_var_x) lastprivate(__pyx_v_var_y) lastprivate(__pyx_v_w) schedule(guided)
#endif /* _OPENMP */
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_14; __pyx_t_13++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_13);
/* Initialize private variables to invalid values */
__pyx_v_I0_pred = ((__pyx_t_5numpy_float64_t)__PYX_NAN());
__pyx_v_W0_pred = ((__pyx_t_5numpy_float64_t)__PYX_NAN());
__pyx_v_W_sum = ((__pyx_t_5numpy_float64_t)__PYX_NAN());
__pyx_v_betta_x = ((__pyx_t_5numpy_float64_t)__PYX_NAN());
__pyx_v_betta_y = ((__pyx_t_5numpy_float64_t)__PYX_NAN());
__pyx_v_i = ((int)0xbad0bad0);
__pyx_v_j = ((int)0xbad0bad0);
__pyx_v_t = ((int)0xbad0bad0);
__pyx_v_var_x = ((__pyx_t_5numpy_float64_t)__PYX_NAN());
__pyx_v_var_y = ((__pyx_t_5numpy_float64_t)__PYX_NAN());
__pyx_v_w = ((__pyx_t_5numpy_float64_t)__PYX_NAN());
/* … */
__pyx_t_12 = __pyx_v_X0;
if ((1 == 0)) abort();
{
__pyx_t_14 = (__pyx_t_12 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_14 > 0)
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_I0_pred) lastprivate(__pyx_v_W0_pred) lastprivate(__pyx_v_W_sum) lastprivate(__pyx_v_betta_x) lastprivate(__pyx_v_betta_y) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) lastprivate(__pyx_v_t) lastprivate(__pyx_v_var_x) lastprivate(__pyx_v_var_y) lastprivate(__pyx_v_w) schedule(guided)
#endif /* _OPENMP */
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_14; __pyx_t_13++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_13);
/* Initialize private variables to invalid values */
__pyx_v_I0_pred = ((__pyx_t_5numpy_float32_t)__PYX_NAN());
__pyx_v_W0_pred = ((__pyx_t_5numpy_float32_t)__PYX_NAN());
__pyx_v_W_sum = ((__pyx_t_5numpy_float32_t)__PYX_NAN());
__pyx_v_betta_x = ((__pyx_t_5numpy_float32_t)__PYX_NAN());
__pyx_v_betta_y = ((__pyx_t_5numpy_float32_t)__PYX_NAN());
__pyx_v_i = ((int)0xbad0bad0);
__pyx_v_j = ((int)0xbad0bad0);
__pyx_v_t = ((int)0xbad0bad0);
__pyx_v_var_x = ((__pyx_t_5numpy_float32_t)__PYX_NAN());
__pyx_v_var_y = ((__pyx_t_5numpy_float32_t)__PYX_NAN());
__pyx_v_w = ((__pyx_t_5numpy_float32_t)__PYX_NAN());
0424:
+0425: for j in range(Y0):
__pyx_t_19 = __pyx_v_Y0;
__pyx_t_20 = __pyx_t_19;
for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
__pyx_v_j = __pyx_t_21;
/* … */
__pyx_t_19 = __pyx_v_Y0;
__pyx_t_20 = __pyx_t_19;
for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
__pyx_v_j = __pyx_t_21;
/* … */
__pyx_t_19 = __pyx_v_Y0;
__pyx_t_20 = __pyx_t_19;
for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
__pyx_v_j = __pyx_t_21;
/* … */
__pyx_t_19 = __pyx_v_Y0;
__pyx_t_20 = __pyx_t_19;
for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
__pyx_v_j = __pyx_t_21;
+0426: W_sum = 0.0
__pyx_v_W_sum = 0.0;
/* … */
__pyx_v_W_sum = 0.0;
/* … */
__pyx_v_W_sum = 0.0;
/* … */
__pyx_v_W_sum = 0.0;
+0427: memset(M_mat, 0, 4 * sizeof(float_t))
(void)(memset(__pyx_v_M_mat, 0, (4 * (sizeof(__pyx_t_5numpy_float64_t)))));
/* … */
(void)(memset(__pyx_v_M_mat, 0, (4 * (sizeof(__pyx_t_5numpy_float32_t)))));
/* … */
(void)(memset(__pyx_v_M_mat, 0, (4 * (sizeof(__pyx_t_5numpy_float64_t)))));
/* … */
(void)(memset(__pyx_v_M_mat, 0, (4 * (sizeof(__pyx_t_5numpy_float32_t)))));
+0428: memset(I0_mat, 0, 3 * sizeof(float_t))
(void)(memset(__pyx_v_I0_mat, 0, (3 * (sizeof(__pyx_t_5numpy_float64_t)))));
/* … */
(void)(memset(__pyx_v_I0_mat, 0, (3 * (sizeof(__pyx_t_5numpy_float32_t)))));
/* … */
(void)(memset(__pyx_v_I0_mat, 0, (3 * (sizeof(__pyx_t_5numpy_float64_t)))));
/* … */
(void)(memset(__pyx_v_I0_mat, 0, (3 * (sizeof(__pyx_t_5numpy_float32_t)))));
+0429: memset(W0_mat, 0, 3 * sizeof(float_t))
(void)(memset(__pyx_v_W0_mat, 0, (3 * (sizeof(__pyx_t_5numpy_float64_t)))));
/* … */
(void)(memset(__pyx_v_W0_mat, 0, (3 * (sizeof(__pyx_t_5numpy_float32_t)))));
/* … */
(void)(memset(__pyx_v_W0_mat, 0, (3 * (sizeof(__pyx_t_5numpy_float64_t)))));
/* … */
(void)(memset(__pyx_v_W0_mat, 0, (3 * (sizeof(__pyx_t_5numpy_float32_t)))));
0430:
+0431: for i in range(<int>num_threads):
__pyx_t_22 = ((int)__pyx_v_num_threads);
__pyx_t_23 = __pyx_t_22;
for (__pyx_t_24 = 0; __pyx_t_24 < __pyx_t_23; __pyx_t_24+=1) {
__pyx_v_i = __pyx_t_24;
/* … */
__pyx_t_22 = ((int)__pyx_v_num_threads);
__pyx_t_23 = __pyx_t_22;
for (__pyx_t_24 = 0; __pyx_t_24 < __pyx_t_23; __pyx_t_24+=1) {
__pyx_v_i = __pyx_t_24;
/* … */
__pyx_t_22 = ((int)__pyx_v_num_threads);
__pyx_t_23 = __pyx_t_22;
for (__pyx_t_24 = 0; __pyx_t_24 < __pyx_t_23; __pyx_t_24+=1) {
__pyx_v_i = __pyx_t_24;
/* … */
__pyx_t_22 = ((int)__pyx_v_num_threads);
__pyx_t_23 = __pyx_t_22;
for (__pyx_t_24 = 0; __pyx_t_24 < __pyx_t_23; __pyx_t_24+=1) {
__pyx_v_i = __pyx_t_24;
+0432: if W_buf[i, j, k] > 0.0:
__pyx_t_6 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W_buf.data + __pyx_t_6 * __pyx_v_W_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_W_buf.strides[1]) )) + __pyx_t_7)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
}
/* … */
__pyx_t_6 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W_buf.data + __pyx_t_6 * __pyx_v_W_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_W_buf.strides[1]) )) + __pyx_t_7)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
}
/* … */
__pyx_t_6 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W_buf.data + __pyx_t_6 * __pyx_v_W_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_W_buf.strides[1]) )) + __pyx_t_7)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
}
/* … */
__pyx_t_6 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W_buf.data + __pyx_t_6 * __pyx_v_W_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_W_buf.strides[1]) )) + __pyx_t_7)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
}
+0433: W_sum = W_sum + W_buf[i, j, k]
__pyx_t_7 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_6 = __pyx_v_k;
__pyx_v_W_sum = (__pyx_v_W_sum + (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W_buf.data + __pyx_t_7 * __pyx_v_W_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_W_buf.strides[1]) )) + __pyx_t_6)) ))));
/* … */
__pyx_t_7 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_6 = __pyx_v_k;
__pyx_v_W_sum = (__pyx_v_W_sum + (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W_buf.data + __pyx_t_7 * __pyx_v_W_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_W_buf.strides[1]) )) + __pyx_t_6)) ))));
/* … */
__pyx_t_7 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_6 = __pyx_v_k;
__pyx_v_W_sum = (__pyx_v_W_sum + (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W_buf.data + __pyx_t_7 * __pyx_v_W_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_W_buf.strides[1]) )) + __pyx_t_6)) ))));
/* … */
__pyx_t_7 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_6 = __pyx_v_k;
__pyx_v_W_sum = (__pyx_v_W_sum + (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W_buf.data + __pyx_t_7 * __pyx_v_W_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_W_buf.strides[1]) )) + __pyx_t_6)) ))));
+0434: w = W_buf[i, j, k] / W_sum
__pyx_t_6 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_v_w = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W_buf.data + __pyx_t_6 * __pyx_v_W_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_W_buf.strides[1]) )) + __pyx_t_7)) ))) / __pyx_v_W_sum);
/* … */
__pyx_t_6 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_v_w = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W_buf.data + __pyx_t_6 * __pyx_v_W_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_W_buf.strides[1]) )) + __pyx_t_7)) ))) / __pyx_v_W_sum);
/* … */
__pyx_t_6 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_v_w = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W_buf.data + __pyx_t_6 * __pyx_v_W_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_W_buf.strides[1]) )) + __pyx_t_7)) ))) / __pyx_v_W_sum);
/* … */
__pyx_t_6 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_v_w = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W_buf.data + __pyx_t_6 * __pyx_v_W_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_W_buf.strides[1]) )) + __pyx_t_7)) ))) / __pyx_v_W_sum);
0435:
+0436: for t in range(4):
for (__pyx_t_25 = 0; __pyx_t_25 < 4; __pyx_t_25+=1) {
__pyx_v_t = __pyx_t_25;
/* … */
for (__pyx_t_25 = 0; __pyx_t_25 < 4; __pyx_t_25+=1) {
__pyx_v_t = __pyx_t_25;
/* … */
for (__pyx_t_25 = 0; __pyx_t_25 < 4; __pyx_t_25+=1) {
__pyx_v_t = __pyx_t_25;
/* … */
for (__pyx_t_25 = 0; __pyx_t_25 < 4; __pyx_t_25+=1) {
__pyx_v_t = __pyx_t_25;
+0437: M_mat[t] = M_mat[t] + w * (M_buf[i, j, k, t] - M_mat[t])
__pyx_t_7 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_6 = __pyx_v_k;
__pyx_t_8 = __pyx_v_t;
(__pyx_v_M_mat[__pyx_v_t]) = ((__pyx_v_M_mat[__pyx_v_t]) + (__pyx_v_w * ((*((__pyx_t_5numpy_float64_t *) ( /* dim=3 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_buf.data + __pyx_t_7 * __pyx_v_M_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_M_buf.strides[1]) ) + __pyx_t_6 * __pyx_v_M_buf.strides[2]) )) + __pyx_t_8)) ))) - (__pyx_v_M_mat[__pyx_v_t]))));
}
/* … */
__pyx_t_7 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_6 = __pyx_v_k;
__pyx_t_8 = __pyx_v_t;
(__pyx_v_M_mat[__pyx_v_t]) = ((__pyx_v_M_mat[__pyx_v_t]) + (__pyx_v_w * ((*((__pyx_t_5numpy_float32_t *) ( /* dim=3 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_buf.data + __pyx_t_7 * __pyx_v_M_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_M_buf.strides[1]) ) + __pyx_t_6 * __pyx_v_M_buf.strides[2]) )) + __pyx_t_8)) ))) - (__pyx_v_M_mat[__pyx_v_t]))));
}
/* … */
__pyx_t_7 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_6 = __pyx_v_k;
__pyx_t_8 = __pyx_v_t;
(__pyx_v_M_mat[__pyx_v_t]) = ((__pyx_v_M_mat[__pyx_v_t]) + (__pyx_v_w * ((*((__pyx_t_5numpy_float64_t *) ( /* dim=3 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_buf.data + __pyx_t_7 * __pyx_v_M_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_M_buf.strides[1]) ) + __pyx_t_6 * __pyx_v_M_buf.strides[2]) )) + __pyx_t_8)) ))) - (__pyx_v_M_mat[__pyx_v_t]))));
}
/* … */
__pyx_t_7 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_6 = __pyx_v_k;
__pyx_t_8 = __pyx_v_t;
(__pyx_v_M_mat[__pyx_v_t]) = ((__pyx_v_M_mat[__pyx_v_t]) + (__pyx_v_w * ((*((__pyx_t_5numpy_float32_t *) ( /* dim=3 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_M_buf.data + __pyx_t_7 * __pyx_v_M_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_M_buf.strides[1]) ) + __pyx_t_6 * __pyx_v_M_buf.strides[2]) )) + __pyx_t_8)) ))) - (__pyx_v_M_mat[__pyx_v_t]))));
}
0438:
+0439: for t in range(3):
for (__pyx_t_25 = 0; __pyx_t_25 < 3; __pyx_t_25+=1) {
__pyx_v_t = __pyx_t_25;
/* … */
for (__pyx_t_25 = 0; __pyx_t_25 < 3; __pyx_t_25+=1) {
__pyx_v_t = __pyx_t_25;
/* … */
for (__pyx_t_25 = 0; __pyx_t_25 < 3; __pyx_t_25+=1) {
__pyx_v_t = __pyx_t_25;
/* … */
for (__pyx_t_25 = 0; __pyx_t_25 < 3; __pyx_t_25+=1) {
__pyx_v_t = __pyx_t_25;
+0440: I0_mat[t] = I0_mat[t] + w * (I0_buf[i, j, k, t] - I0_mat[t])
__pyx_t_8 = __pyx_v_i;
__pyx_t_6 = __pyx_v_j;
__pyx_t_5 = __pyx_v_k;
__pyx_t_7 = __pyx_v_t;
(__pyx_v_I0_mat[__pyx_v_t]) = ((__pyx_v_I0_mat[__pyx_v_t]) + (__pyx_v_w * ((*((__pyx_t_5numpy_float64_t *) ( /* dim=3 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_buf.data + __pyx_t_8 * __pyx_v_I0_buf.strides[0]) ) + __pyx_t_6 * __pyx_v_I0_buf.strides[1]) ) + __pyx_t_5 * __pyx_v_I0_buf.strides[2]) )) + __pyx_t_7)) ))) - (__pyx_v_I0_mat[__pyx_v_t]))));
/* … */
__pyx_t_8 = __pyx_v_i;
__pyx_t_6 = __pyx_v_j;
__pyx_t_5 = __pyx_v_k;
__pyx_t_7 = __pyx_v_t;
(__pyx_v_I0_mat[__pyx_v_t]) = ((__pyx_v_I0_mat[__pyx_v_t]) + (__pyx_v_w * ((*((__pyx_t_5numpy_float32_t *) ( /* dim=3 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_buf.data + __pyx_t_8 * __pyx_v_I0_buf.strides[0]) ) + __pyx_t_6 * __pyx_v_I0_buf.strides[1]) ) + __pyx_t_5 * __pyx_v_I0_buf.strides[2]) )) + __pyx_t_7)) ))) - (__pyx_v_I0_mat[__pyx_v_t]))));
/* … */
__pyx_t_8 = __pyx_v_i;
__pyx_t_6 = __pyx_v_j;
__pyx_t_5 = __pyx_v_k;
__pyx_t_7 = __pyx_v_t;
(__pyx_v_I0_mat[__pyx_v_t]) = ((__pyx_v_I0_mat[__pyx_v_t]) + (__pyx_v_w * ((*((__pyx_t_5numpy_float64_t *) ( /* dim=3 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_buf.data + __pyx_t_8 * __pyx_v_I0_buf.strides[0]) ) + __pyx_t_6 * __pyx_v_I0_buf.strides[1]) ) + __pyx_t_5 * __pyx_v_I0_buf.strides[2]) )) + __pyx_t_7)) ))) - (__pyx_v_I0_mat[__pyx_v_t]))));
/* … */
__pyx_t_8 = __pyx_v_i;
__pyx_t_6 = __pyx_v_j;
__pyx_t_5 = __pyx_v_k;
__pyx_t_7 = __pyx_v_t;
(__pyx_v_I0_mat[__pyx_v_t]) = ((__pyx_v_I0_mat[__pyx_v_t]) + (__pyx_v_w * ((*((__pyx_t_5numpy_float32_t *) ( /* dim=3 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I0_buf.data + __pyx_t_8 * __pyx_v_I0_buf.strides[0]) ) + __pyx_t_6 * __pyx_v_I0_buf.strides[1]) ) + __pyx_t_5 * __pyx_v_I0_buf.strides[2]) )) + __pyx_t_7)) ))) - (__pyx_v_I0_mat[__pyx_v_t]))));
+0441: W0_mat[t] = W0_mat[t] + w * (W0_buf[i, j, k, t] - W0_mat[t])
__pyx_t_7 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_6 = __pyx_v_k;
__pyx_t_8 = __pyx_v_t;
(__pyx_v_W0_mat[__pyx_v_t]) = ((__pyx_v_W0_mat[__pyx_v_t]) + (__pyx_v_w * ((*((__pyx_t_5numpy_float64_t *) ( /* dim=3 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_buf.data + __pyx_t_7 * __pyx_v_W0_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_W0_buf.strides[1]) ) + __pyx_t_6 * __pyx_v_W0_buf.strides[2]) )) + __pyx_t_8)) ))) - (__pyx_v_W0_mat[__pyx_v_t]))));
}
/* … */
__pyx_t_7 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_6 = __pyx_v_k;
__pyx_t_8 = __pyx_v_t;
(__pyx_v_W0_mat[__pyx_v_t]) = ((__pyx_v_W0_mat[__pyx_v_t]) + (__pyx_v_w * ((*((__pyx_t_5numpy_float32_t *) ( /* dim=3 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_buf.data + __pyx_t_7 * __pyx_v_W0_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_W0_buf.strides[1]) ) + __pyx_t_6 * __pyx_v_W0_buf.strides[2]) )) + __pyx_t_8)) ))) - (__pyx_v_W0_mat[__pyx_v_t]))));
}
/* … */
__pyx_t_7 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_6 = __pyx_v_k;
__pyx_t_8 = __pyx_v_t;
(__pyx_v_W0_mat[__pyx_v_t]) = ((__pyx_v_W0_mat[__pyx_v_t]) + (__pyx_v_w * ((*((__pyx_t_5numpy_float64_t *) ( /* dim=3 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_buf.data + __pyx_t_7 * __pyx_v_W0_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_W0_buf.strides[1]) ) + __pyx_t_6 * __pyx_v_W0_buf.strides[2]) )) + __pyx_t_8)) ))) - (__pyx_v_W0_mat[__pyx_v_t]))));
}
/* … */
__pyx_t_7 = __pyx_v_i;
__pyx_t_5 = __pyx_v_j;
__pyx_t_6 = __pyx_v_k;
__pyx_t_8 = __pyx_v_t;
(__pyx_v_W0_mat[__pyx_v_t]) = ((__pyx_v_W0_mat[__pyx_v_t]) + (__pyx_v_w * ((*((__pyx_t_5numpy_float32_t *) ( /* dim=3 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_W0_buf.data + __pyx_t_7 * __pyx_v_W0_buf.strides[0]) ) + __pyx_t_5 * __pyx_v_W0_buf.strides[1]) ) + __pyx_t_6 * __pyx_v_W0_buf.strides[2]) )) + __pyx_t_8)) ))) - (__pyx_v_W0_mat[__pyx_v_t]))));
}
0442:
+0443: var_y = M_mat[2] - M_mat[0] * M_mat[0]
__pyx_v_var_y = ((__pyx_v_M_mat[2]) - ((__pyx_v_M_mat[0]) * (__pyx_v_M_mat[0])));
/* … */
__pyx_v_var_y = ((__pyx_v_M_mat[2]) - ((__pyx_v_M_mat[0]) * (__pyx_v_M_mat[0])));
/* … */
__pyx_v_var_y = ((__pyx_v_M_mat[2]) - ((__pyx_v_M_mat[0]) * (__pyx_v_M_mat[0])));
/* … */
__pyx_v_var_y = ((__pyx_v_M_mat[2]) - ((__pyx_v_M_mat[0]) * (__pyx_v_M_mat[0])));
+0444: var_x = M_mat[3] - M_mat[1] * M_mat[1]
__pyx_v_var_x = ((__pyx_v_M_mat[3]) - ((__pyx_v_M_mat[1]) * (__pyx_v_M_mat[1])));
/* … */
__pyx_v_var_x = ((__pyx_v_M_mat[3]) - ((__pyx_v_M_mat[1]) * (__pyx_v_M_mat[1])));
/* … */
__pyx_v_var_x = ((__pyx_v_M_mat[3]) - ((__pyx_v_M_mat[1]) * (__pyx_v_M_mat[1])));
/* … */
__pyx_v_var_x = ((__pyx_v_M_mat[3]) - ((__pyx_v_M_mat[1]) * (__pyx_v_M_mat[1])));
0445:
+0446: betta_y = (I0_mat[1] - I0_mat[0] * M_mat[0]) / var_y if var_y > 0.0 else 0.0
if (((__pyx_v_var_y > 0.0) != 0)) {
__pyx_t_26 = (((__pyx_v_I0_mat[1]) - ((__pyx_v_I0_mat[0]) * (__pyx_v_M_mat[0]))) / __pyx_v_var_y);
} else {
__pyx_t_26 = 0.0;
}
__pyx_v_betta_y = __pyx_t_26;
/* … */
if (((__pyx_v_var_y > 0.0) != 0)) {
__pyx_t_26 = (((__pyx_v_I0_mat[1]) - ((__pyx_v_I0_mat[0]) * (__pyx_v_M_mat[0]))) / __pyx_v_var_y);
} else {
__pyx_t_26 = 0.0;
}
__pyx_v_betta_y = __pyx_t_26;
/* … */
if (((__pyx_v_var_y > 0.0) != 0)) {
__pyx_t_26 = (((__pyx_v_I0_mat[1]) - ((__pyx_v_I0_mat[0]) * (__pyx_v_M_mat[0]))) / __pyx_v_var_y);
} else {
__pyx_t_26 = 0.0;
}
__pyx_v_betta_y = __pyx_t_26;
/* … */
if (((__pyx_v_var_y > 0.0) != 0)) {
__pyx_t_26 = (((__pyx_v_I0_mat[1]) - ((__pyx_v_I0_mat[0]) * (__pyx_v_M_mat[0]))) / __pyx_v_var_y);
} else {
__pyx_t_26 = 0.0;
}
__pyx_v_betta_y = __pyx_t_26;
+0447: betta_x = (I0_mat[2] - I0_mat[0] * M_mat[1]) / var_x if var_x > 0.0 else 0.0
if (((__pyx_v_var_x > 0.0) != 0)) {
__pyx_t_26 = (((__pyx_v_I0_mat[2]) - ((__pyx_v_I0_mat[0]) * (__pyx_v_M_mat[1]))) / __pyx_v_var_x);
} else {
__pyx_t_26 = 0.0;
}
__pyx_v_betta_x = __pyx_t_26;
/* … */
if (((__pyx_v_var_x > 0.0) != 0)) {
__pyx_t_26 = (((__pyx_v_I0_mat[2]) - ((__pyx_v_I0_mat[0]) * (__pyx_v_M_mat[1]))) / __pyx_v_var_x);
} else {
__pyx_t_26 = 0.0;
}
__pyx_v_betta_x = __pyx_t_26;
/* … */
if (((__pyx_v_var_x > 0.0) != 0)) {
__pyx_t_26 = (((__pyx_v_I0_mat[2]) - ((__pyx_v_I0_mat[0]) * (__pyx_v_M_mat[1]))) / __pyx_v_var_x);
} else {
__pyx_t_26 = 0.0;
}
__pyx_v_betta_x = __pyx_t_26;
/* … */
if (((__pyx_v_var_x > 0.0) != 0)) {
__pyx_t_26 = (((__pyx_v_I0_mat[2]) - ((__pyx_v_I0_mat[0]) * (__pyx_v_M_mat[1]))) / __pyx_v_var_x);
} else {
__pyx_t_26 = 0.0;
}
__pyx_v_betta_x = __pyx_t_26;
0448:
+0449: I0_pred = I0_mat[0] - betta_y * (ds_y * j - M_mat[0]) - betta_x * (ds_x * k - M_mat[1])
__pyx_v_I0_pred = (((__pyx_v_I0_mat[0]) - (__pyx_v_betta_y * ((__pyx_v_ds_y * __pyx_v_j) - (__pyx_v_M_mat[0])))) - (__pyx_v_betta_x * ((__pyx_v_ds_x * __pyx_v_k) - (__pyx_v_M_mat[1]))));
/* … */
__pyx_v_I0_pred = (((__pyx_v_I0_mat[0]) - (__pyx_v_betta_y * ((__pyx_v_ds_y * __pyx_v_j) - (__pyx_v_M_mat[0])))) - (__pyx_v_betta_x * ((__pyx_v_ds_x * __pyx_v_k) - (__pyx_v_M_mat[1]))));
/* … */
__pyx_v_I0_pred = (((__pyx_v_I0_mat[0]) - (__pyx_v_betta_y * ((__pyx_v_ds_y * __pyx_v_j) - (__pyx_v_M_mat[0])))) - (__pyx_v_betta_x * ((__pyx_v_ds_x * __pyx_v_k) - (__pyx_v_M_mat[1]))));
/* … */
__pyx_v_I0_pred = (((__pyx_v_I0_mat[0]) - (__pyx_v_betta_y * ((__pyx_v_ds_y * __pyx_v_j) - (__pyx_v_M_mat[0])))) - (__pyx_v_betta_x * ((__pyx_v_ds_x * __pyx_v_k) - (__pyx_v_M_mat[1]))));
0450:
+0451: betta_y = (W0_mat[1] - W0_mat[0] * M_mat[0]) / var_y if var_y > 0.0 else 0.0
if (((__pyx_v_var_y > 0.0) != 0)) {
__pyx_t_26 = (((__pyx_v_W0_mat[1]) - ((__pyx_v_W0_mat[0]) * (__pyx_v_M_mat[0]))) / __pyx_v_var_y);
} else {
__pyx_t_26 = 0.0;
}
__pyx_v_betta_y = __pyx_t_26;
/* … */
if (((__pyx_v_var_y > 0.0) != 0)) {
__pyx_t_26 = (((__pyx_v_W0_mat[1]) - ((__pyx_v_W0_mat[0]) * (__pyx_v_M_mat[0]))) / __pyx_v_var_y);
} else {
__pyx_t_26 = 0.0;
}
__pyx_v_betta_y = __pyx_t_26;
/* … */
if (((__pyx_v_var_y > 0.0) != 0)) {
__pyx_t_26 = (((__pyx_v_W0_mat[1]) - ((__pyx_v_W0_mat[0]) * (__pyx_v_M_mat[0]))) / __pyx_v_var_y);
} else {
__pyx_t_26 = 0.0;
}
__pyx_v_betta_y = __pyx_t_26;
/* … */
if (((__pyx_v_var_y > 0.0) != 0)) {
__pyx_t_26 = (((__pyx_v_W0_mat[1]) - ((__pyx_v_W0_mat[0]) * (__pyx_v_M_mat[0]))) / __pyx_v_var_y);
} else {
__pyx_t_26 = 0.0;
}
__pyx_v_betta_y = __pyx_t_26;
+0452: betta_x = (W0_mat[2] - W0_mat[0] * M_mat[1]) / var_x if var_x > 0.0 else 0.0
if (((__pyx_v_var_x > 0.0) != 0)) {
__pyx_t_26 = (((__pyx_v_W0_mat[2]) - ((__pyx_v_W0_mat[0]) * (__pyx_v_M_mat[1]))) / __pyx_v_var_x);
} else {
__pyx_t_26 = 0.0;
}
__pyx_v_betta_x = __pyx_t_26;
/* … */
if (((__pyx_v_var_x > 0.0) != 0)) {
__pyx_t_26 = (((__pyx_v_W0_mat[2]) - ((__pyx_v_W0_mat[0]) * (__pyx_v_M_mat[1]))) / __pyx_v_var_x);
} else {
__pyx_t_26 = 0.0;
}
__pyx_v_betta_x = __pyx_t_26;
/* … */
if (((__pyx_v_var_x > 0.0) != 0)) {
__pyx_t_26 = (((__pyx_v_W0_mat[2]) - ((__pyx_v_W0_mat[0]) * (__pyx_v_M_mat[1]))) / __pyx_v_var_x);
} else {
__pyx_t_26 = 0.0;
}
__pyx_v_betta_x = __pyx_t_26;
/* … */
if (((__pyx_v_var_x > 0.0) != 0)) {
__pyx_t_26 = (((__pyx_v_W0_mat[2]) - ((__pyx_v_W0_mat[0]) * (__pyx_v_M_mat[1]))) / __pyx_v_var_x);
} else {
__pyx_t_26 = 0.0;
}
__pyx_v_betta_x = __pyx_t_26;
0453:
+0454: W0_pred = W0_mat[0] - betta_y * (ds_y * j - M_mat[0]) - betta_x * (ds_x * k - M_mat[1])
__pyx_v_W0_pred = (((__pyx_v_W0_mat[0]) - (__pyx_v_betta_y * ((__pyx_v_ds_y * __pyx_v_j) - (__pyx_v_M_mat[0])))) - (__pyx_v_betta_x * ((__pyx_v_ds_x * __pyx_v_k) - (__pyx_v_M_mat[1]))));
/* … */
__pyx_v_W0_pred = (((__pyx_v_W0_mat[0]) - (__pyx_v_betta_y * ((__pyx_v_ds_y * __pyx_v_j) - (__pyx_v_M_mat[0])))) - (__pyx_v_betta_x * ((__pyx_v_ds_x * __pyx_v_k) - (__pyx_v_M_mat[1]))));
/* … */
__pyx_v_W0_pred = (((__pyx_v_W0_mat[0]) - (__pyx_v_betta_y * ((__pyx_v_ds_y * __pyx_v_j) - (__pyx_v_M_mat[0])))) - (__pyx_v_betta_x * ((__pyx_v_ds_x * __pyx_v_k) - (__pyx_v_M_mat[1]))));
/* … */
__pyx_v_W0_pred = (((__pyx_v_W0_mat[0]) - (__pyx_v_betta_y * ((__pyx_v_ds_y * __pyx_v_j) - (__pyx_v_M_mat[0])))) - (__pyx_v_betta_x * ((__pyx_v_ds_x * __pyx_v_k) - (__pyx_v_M_mat[1]))));
0455:
+0456: _I0[j, k] = I0_pred / W0_pred if W0_pred > 0.0 else 1.0
if (((__pyx_v_W0_pred > 0.0) != 0)) {
__pyx_t_26 = (__pyx_v_I0_pred / __pyx_v_W0_pred);
} else {
__pyx_t_26 = 1.0;
}
__pyx_t_8 = __pyx_v_j;
__pyx_t_6 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v__I0.data + __pyx_t_8 * __pyx_v__I0.strides[0]) )) + __pyx_t_6)) )) = __pyx_t_26;
}
}
}
}
}
/* … */
if (((__pyx_v_W0_pred > 0.0) != 0)) {
__pyx_t_26 = (__pyx_v_I0_pred / __pyx_v_W0_pred);
} else {
__pyx_t_26 = 1.0;
}
__pyx_t_8 = __pyx_v_j;
__pyx_t_6 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v__I0.data + __pyx_t_8 * __pyx_v__I0.strides[0]) )) + __pyx_t_6)) )) = __pyx_t_26;
}
}
}
}
}
/* … */
if (((__pyx_v_W0_pred > 0.0) != 0)) {
__pyx_t_26 = (__pyx_v_I0_pred / __pyx_v_W0_pred);
} else {
__pyx_t_26 = 1.0;
}
__pyx_t_8 = __pyx_v_j;
__pyx_t_6 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v__I0.data + __pyx_t_8 * __pyx_v__I0.strides[0]) )) + __pyx_t_6)) )) = __pyx_t_26;
}
}
}
}
}
/* … */
if (((__pyx_v_W0_pred > 0.0) != 0)) {
__pyx_t_26 = (__pyx_v_I0_pred / __pyx_v_W0_pred);
} else {
__pyx_t_26 = 1.0;
}
__pyx_t_8 = __pyx_v_j;
__pyx_t_6 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v__I0.data + __pyx_t_8 * __pyx_v__I0.strides[0]) )) + __pyx_t_6)) )) = __pyx_t_26;
}
}
}
}
}
0457:
+0458: free(M_mat); free(I0_mat); free(W0_mat)
free(__pyx_v_M_mat);
free(__pyx_v_I0_mat);
free(__pyx_v_W0_mat);
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
free(__pyx_v_M_mat);
free(__pyx_v_I0_mat);
free(__pyx_v_W0_mat);
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
free(__pyx_v_M_mat);
free(__pyx_v_I0_mat);
free(__pyx_v_W0_mat);
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
free(__pyx_v_M_mat);
free(__pyx_v_I0_mat);
free(__pyx_v_W0_mat);
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
0459:
+0460: if return_nm0:
__pyx_t_1 = (__pyx_v_return_nm0 != 0);
if (__pyx_t_1) {
/* … */
}
/* … */
__pyx_t_1 = (__pyx_v_return_nm0 != 0);
if (__pyx_t_1) {
/* … */
}
/* … */
__pyx_t_1 = (__pyx_v_return_nm0 != 0);
if (__pyx_t_1) {
/* … */
}
/* … */
__pyx_t_1 = (__pyx_v_return_nm0 != 0);
if (__pyx_t_1) {
/* … */
}
+0461: return I0, <int>n0, <int>m0
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = __Pyx_PyInt_From_int(((int)__pyx_v_n0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyInt_From_int(((int)__pyx_v_m0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_27 = PyTuple_New(3); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_INCREF(((PyObject *)__pyx_v_I0)); __Pyx_GIVEREF(((PyObject *)__pyx_v_I0)); PyTuple_SET_ITEM(__pyx_t_27, 0, ((PyObject *)__pyx_v_I0)); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_27, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_27, 2, __pyx_t_3); __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_r = __pyx_t_27; __pyx_t_27 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __pyx_t_4 = __Pyx_PyInt_From_int(((int)__pyx_v_n0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyInt_From_int(((int)__pyx_v_m0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_27 = PyTuple_New(3); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_INCREF(((PyObject *)__pyx_v_I0)); __Pyx_GIVEREF(((PyObject *)__pyx_v_I0)); PyTuple_SET_ITEM(__pyx_t_27, 0, ((PyObject *)__pyx_v_I0)); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_27, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_27, 2, __pyx_t_3); __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_r = __pyx_t_27; __pyx_t_27 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __pyx_t_4 = __Pyx_PyInt_From_int(((int)__pyx_v_n0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyInt_From_int(((int)__pyx_v_m0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_27 = PyTuple_New(3); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_INCREF(((PyObject *)__pyx_v_I0)); __Pyx_GIVEREF(((PyObject *)__pyx_v_I0)); PyTuple_SET_ITEM(__pyx_t_27, 0, ((PyObject *)__pyx_v_I0)); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_27, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_27, 2, __pyx_t_3); __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_r = __pyx_t_27; __pyx_t_27 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __pyx_t_4 = __Pyx_PyInt_From_int(((int)__pyx_v_n0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyInt_From_int(((int)__pyx_v_m0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_27 = PyTuple_New(3); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_INCREF(((PyObject *)__pyx_v_I0)); __Pyx_GIVEREF(((PyObject *)__pyx_v_I0)); PyTuple_SET_ITEM(__pyx_t_27, 0, ((PyObject *)__pyx_v_I0)); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_27, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_27, 2, __pyx_t_3); __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_r = __pyx_t_27; __pyx_t_27 = 0; goto __pyx_L0;
0462: else:
+0463: return I0
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(((PyObject *)__pyx_v_I0));
__pyx_r = ((PyObject *)__pyx_v_I0);
goto __pyx_L0;
}
/* … */
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(((PyObject *)__pyx_v_I0));
__pyx_r = ((PyObject *)__pyx_v_I0);
goto __pyx_L0;
}
/* … */
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(((PyObject *)__pyx_v_I0));
__pyx_r = ((PyObject *)__pyx_v_I0);
goto __pyx_L0;
}
/* … */
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(((PyObject *)__pyx_v_I0));
__pyx_r = ((PyObject *)__pyx_v_I0);
goto __pyx_L0;
}
0464:
+0465: cdef double FVU_interp(uint_t[:, :, ::1] I_n, float_t W, float_t[:, ::1] I0, float_t[::1] di, float_t[::1] dj, int j, int k,
static double __pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__Pyx_memviewslice __pyx_v_I_n, __pyx_t_5numpy_float64_t __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, int __pyx_v_j, int __pyx_v_k, __pyx_t_5numpy_float64_t __pyx_v_ux, __pyx_t_5numpy_float64_t __pyx_v_uy, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
int __pyx_v_N;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_i;
int __pyx_v_y0;
int __pyx_v_y1;
int __pyx_v_x0;
int __pyx_v_x1;
double __pyx_v_y;
double __pyx_v_x;
double __pyx_v_dy;
double __pyx_v_dx;
double __pyx_v_I0_bi;
double __pyx_v_err;
double __pyx_r;
/* … */
/* function exit code */
__pyx_L0:;
return __pyx_r;
}
static double __pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__Pyx_memviewslice __pyx_v_I_n, __pyx_t_5numpy_float32_t __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, int __pyx_v_j, int __pyx_v_k, __pyx_t_5numpy_float32_t __pyx_v_ux, __pyx_t_5numpy_float32_t __pyx_v_uy, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
int __pyx_v_N;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_i;
int __pyx_v_y0;
int __pyx_v_y1;
int __pyx_v_x0;
int __pyx_v_x1;
double __pyx_v_y;
double __pyx_v_x;
double __pyx_v_dy;
double __pyx_v_dx;
double __pyx_v_I0_bi;
double __pyx_v_err;
double __pyx_r;
/* … */
/* function exit code */
__pyx_L0:;
return __pyx_r;
}
static double __pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__Pyx_memviewslice __pyx_v_I_n, __pyx_t_5numpy_float64_t __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, int __pyx_v_j, int __pyx_v_k, __pyx_t_5numpy_float64_t __pyx_v_ux, __pyx_t_5numpy_float64_t __pyx_v_uy, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
int __pyx_v_N;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_i;
int __pyx_v_y0;
int __pyx_v_y1;
int __pyx_v_x0;
int __pyx_v_x1;
double __pyx_v_y;
double __pyx_v_x;
double __pyx_v_dy;
double __pyx_v_dx;
double __pyx_v_I0_bi;
double __pyx_v_err;
double __pyx_r;
/* … */
/* function exit code */
__pyx_L0:;
return __pyx_r;
}
static double __pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__Pyx_memviewslice __pyx_v_I_n, __pyx_t_5numpy_float32_t __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, int __pyx_v_j, int __pyx_v_k, __pyx_t_5numpy_float32_t __pyx_v_ux, __pyx_t_5numpy_float32_t __pyx_v_uy, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
int __pyx_v_N;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_i;
int __pyx_v_y0;
int __pyx_v_y1;
int __pyx_v_x0;
int __pyx_v_x1;
double __pyx_v_y;
double __pyx_v_x;
double __pyx_v_dy;
double __pyx_v_dx;
double __pyx_v_I0_bi;
double __pyx_v_err;
double __pyx_r;
/* … */
/* function exit code */
__pyx_L0:;
return __pyx_r;
}
0466: float_t ux, float_t uy, double ds_y, double ds_x, double sigma, loss_func f) nogil:
0467: """Return fraction of variance unexplained between the validation set I and trained
0468: profile I0. Find the predicted values at the points (y, x) with bilinear interpolation.
0469: """
+0470: cdef int N = I_n.shape[0], Y0 = I0.shape[0], X0 = I0.shape[1]
__pyx_v_N = (__pyx_v_I_n.shape[0]); __pyx_v_Y0 = (__pyx_v_I0.shape[0]); __pyx_v_X0 = (__pyx_v_I0.shape[1]); /* … */ __pyx_v_N = (__pyx_v_I_n.shape[0]); __pyx_v_Y0 = (__pyx_v_I0.shape[0]); __pyx_v_X0 = (__pyx_v_I0.shape[1]); /* … */ __pyx_v_N = (__pyx_v_I_n.shape[0]); __pyx_v_Y0 = (__pyx_v_I0.shape[0]); __pyx_v_X0 = (__pyx_v_I0.shape[1]); /* … */ __pyx_v_N = (__pyx_v_I_n.shape[0]); __pyx_v_Y0 = (__pyx_v_I0.shape[0]); __pyx_v_X0 = (__pyx_v_I0.shape[1]);
0471: cdef int i, y0, y1, x0, x1
+0472: cdef double y, x, dy, dx, I0_bi, err = 0.0
__pyx_v_err = 0.0; /* … */ __pyx_v_err = 0.0; /* … */ __pyx_v_err = 0.0; /* … */ __pyx_v_err = 0.0;
0473:
+0474: for i in range(N):
__pyx_t_1 = __pyx_v_N;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_i = __pyx_t_3;
/* … */
__pyx_t_1 = __pyx_v_N;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_i = __pyx_t_3;
/* … */
__pyx_t_1 = __pyx_v_N;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_i = __pyx_t_3;
/* … */
__pyx_t_1 = __pyx_v_N;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_i = __pyx_t_3;
+0475: y = (ux - di[i]) / ds_y
__pyx_t_4 = __pyx_v_i;
__pyx_v_y = ((__pyx_v_ux - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_di.data) + __pyx_t_4)) )))) / ((__pyx_t_5numpy_float64_t)__pyx_v_ds_y));
/* … */
__pyx_t_4 = __pyx_v_i;
__pyx_v_y = (((double)(__pyx_v_ux - (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_di.data) + __pyx_t_4)) ))))) / __pyx_v_ds_y);
/* … */
__pyx_t_4 = __pyx_v_i;
__pyx_v_y = ((__pyx_v_ux - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_di.data) + __pyx_t_4)) )))) / ((__pyx_t_5numpy_float64_t)__pyx_v_ds_y));
/* … */
__pyx_t_4 = __pyx_v_i;
__pyx_v_y = (((double)(__pyx_v_ux - (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_di.data) + __pyx_t_4)) ))))) / __pyx_v_ds_y);
+0476: x = (uy - dj[i]) / ds_x
__pyx_t_4 = __pyx_v_i;
__pyx_v_x = ((__pyx_v_uy - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dj.data) + __pyx_t_4)) )))) / ((__pyx_t_5numpy_float64_t)__pyx_v_ds_x));
/* … */
__pyx_t_4 = __pyx_v_i;
__pyx_v_x = (((double)(__pyx_v_uy - (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dj.data) + __pyx_t_4)) ))))) / __pyx_v_ds_x);
/* … */
__pyx_t_4 = __pyx_v_i;
__pyx_v_x = ((__pyx_v_uy - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dj.data) + __pyx_t_4)) )))) / ((__pyx_t_5numpy_float64_t)__pyx_v_ds_x));
/* … */
__pyx_t_4 = __pyx_v_i;
__pyx_v_x = (((double)(__pyx_v_uy - (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dj.data) + __pyx_t_4)) ))))) / __pyx_v_ds_x);
0477:
+0478: if y <= 0.0:
__pyx_t_5 = ((__pyx_v_y <= 0.0) != 0);
if (__pyx_t_5) {
/* … */
goto __pyx_L5;
}
/* … */
__pyx_t_5 = ((__pyx_v_y <= 0.0) != 0);
if (__pyx_t_5) {
/* … */
goto __pyx_L5;
}
/* … */
__pyx_t_5 = ((__pyx_v_y <= 0.0) != 0);
if (__pyx_t_5) {
/* … */
goto __pyx_L5;
}
/* … */
__pyx_t_5 = ((__pyx_v_y <= 0.0) != 0);
if (__pyx_t_5) {
/* … */
goto __pyx_L5;
}
+0479: dy = 0.0; y0 = 0; y1 = 0
__pyx_v_dy = 0.0;
__pyx_v_y0 = 0;
__pyx_v_y1 = 0;
/* … */
__pyx_v_dy = 0.0;
__pyx_v_y0 = 0;
__pyx_v_y1 = 0;
/* … */
__pyx_v_dy = 0.0;
__pyx_v_y0 = 0;
__pyx_v_y1 = 0;
/* … */
__pyx_v_dy = 0.0;
__pyx_v_y0 = 0;
__pyx_v_y1 = 0;
+0480: elif y >= Y0 - 1.0:
__pyx_t_5 = ((__pyx_v_y >= (__pyx_v_Y0 - 1.0)) != 0);
if (__pyx_t_5) {
/* … */
goto __pyx_L5;
}
/* … */
__pyx_t_5 = ((__pyx_v_y >= (__pyx_v_Y0 - 1.0)) != 0);
if (__pyx_t_5) {
/* … */
goto __pyx_L5;
}
/* … */
__pyx_t_5 = ((__pyx_v_y >= (__pyx_v_Y0 - 1.0)) != 0);
if (__pyx_t_5) {
/* … */
goto __pyx_L5;
}
/* … */
__pyx_t_5 = ((__pyx_v_y >= (__pyx_v_Y0 - 1.0)) != 0);
if (__pyx_t_5) {
/* … */
goto __pyx_L5;
}
+0481: dy = 0.0; y0 = Y0 - 1; y1 = Y0 - 1
__pyx_v_dy = 0.0;
__pyx_v_y0 = (__pyx_v_Y0 - 1);
__pyx_v_y1 = (__pyx_v_Y0 - 1);
/* … */
__pyx_v_dy = 0.0;
__pyx_v_y0 = (__pyx_v_Y0 - 1);
__pyx_v_y1 = (__pyx_v_Y0 - 1);
/* … */
__pyx_v_dy = 0.0;
__pyx_v_y0 = (__pyx_v_Y0 - 1);
__pyx_v_y1 = (__pyx_v_Y0 - 1);
/* … */
__pyx_v_dy = 0.0;
__pyx_v_y0 = (__pyx_v_Y0 - 1);
__pyx_v_y1 = (__pyx_v_Y0 - 1);
0482: else:
+0483: dy = y - floor(y)
/*else*/ {
__pyx_v_dy = (__pyx_v_y - floor(__pyx_v_y));
/* … */
/*else*/ {
__pyx_v_dy = (__pyx_v_y - floor(__pyx_v_y));
/* … */
/*else*/ {
__pyx_v_dy = (__pyx_v_y - floor(__pyx_v_y));
/* … */
/*else*/ {
__pyx_v_dy = (__pyx_v_y - floor(__pyx_v_y));
+0484: y0 = <int>floor(y); y1 = y0 + 1
__pyx_v_y0 = ((int)floor(__pyx_v_y));
__pyx_v_y1 = (__pyx_v_y0 + 1);
}
__pyx_L5:;
/* … */
__pyx_v_y0 = ((int)floor(__pyx_v_y));
__pyx_v_y1 = (__pyx_v_y0 + 1);
}
__pyx_L5:;
/* … */
__pyx_v_y0 = ((int)floor(__pyx_v_y));
__pyx_v_y1 = (__pyx_v_y0 + 1);
}
__pyx_L5:;
/* … */
__pyx_v_y0 = ((int)floor(__pyx_v_y));
__pyx_v_y1 = (__pyx_v_y0 + 1);
}
__pyx_L5:;
0485:
+0486: if x <= 0.0:
__pyx_t_5 = ((__pyx_v_x <= 0.0) != 0);
if (__pyx_t_5) {
/* … */
goto __pyx_L6;
}
/* … */
__pyx_t_5 = ((__pyx_v_x <= 0.0) != 0);
if (__pyx_t_5) {
/* … */
goto __pyx_L6;
}
/* … */
__pyx_t_5 = ((__pyx_v_x <= 0.0) != 0);
if (__pyx_t_5) {
/* … */
goto __pyx_L6;
}
/* … */
__pyx_t_5 = ((__pyx_v_x <= 0.0) != 0);
if (__pyx_t_5) {
/* … */
goto __pyx_L6;
}
+0487: dx = 0.0; x0 = 0; x1 = 0
__pyx_v_dx = 0.0;
__pyx_v_x0 = 0;
__pyx_v_x1 = 0;
/* … */
__pyx_v_dx = 0.0;
__pyx_v_x0 = 0;
__pyx_v_x1 = 0;
/* … */
__pyx_v_dx = 0.0;
__pyx_v_x0 = 0;
__pyx_v_x1 = 0;
/* … */
__pyx_v_dx = 0.0;
__pyx_v_x0 = 0;
__pyx_v_x1 = 0;
+0488: elif x >= X0 - 1.0:
__pyx_t_5 = ((__pyx_v_x >= (__pyx_v_X0 - 1.0)) != 0);
if (__pyx_t_5) {
/* … */
goto __pyx_L6;
}
/* … */
__pyx_t_5 = ((__pyx_v_x >= (__pyx_v_X0 - 1.0)) != 0);
if (__pyx_t_5) {
/* … */
goto __pyx_L6;
}
/* … */
__pyx_t_5 = ((__pyx_v_x >= (__pyx_v_X0 - 1.0)) != 0);
if (__pyx_t_5) {
/* … */
goto __pyx_L6;
}
/* … */
__pyx_t_5 = ((__pyx_v_x >= (__pyx_v_X0 - 1.0)) != 0);
if (__pyx_t_5) {
/* … */
goto __pyx_L6;
}
+0489: dx = 0.0; x0 = X0 - 1; x1 = X0 - 1
__pyx_v_dx = 0.0;
__pyx_v_x0 = (__pyx_v_X0 - 1);
__pyx_v_x1 = (__pyx_v_X0 - 1);
/* … */
__pyx_v_dx = 0.0;
__pyx_v_x0 = (__pyx_v_X0 - 1);
__pyx_v_x1 = (__pyx_v_X0 - 1);
/* … */
__pyx_v_dx = 0.0;
__pyx_v_x0 = (__pyx_v_X0 - 1);
__pyx_v_x1 = (__pyx_v_X0 - 1);
/* … */
__pyx_v_dx = 0.0;
__pyx_v_x0 = (__pyx_v_X0 - 1);
__pyx_v_x1 = (__pyx_v_X0 - 1);
0490: else:
+0491: dx = x - floor(x)
/*else*/ {
__pyx_v_dx = (__pyx_v_x - floor(__pyx_v_x));
/* … */
/*else*/ {
__pyx_v_dx = (__pyx_v_x - floor(__pyx_v_x));
/* … */
/*else*/ {
__pyx_v_dx = (__pyx_v_x - floor(__pyx_v_x));
/* … */
/*else*/ {
__pyx_v_dx = (__pyx_v_x - floor(__pyx_v_x));
+0492: x0 = <int>floor(x); x1 = x0 + 1
__pyx_v_x0 = ((int)floor(__pyx_v_x));
__pyx_v_x1 = (__pyx_v_x0 + 1);
}
__pyx_L6:;
/* … */
__pyx_v_x0 = ((int)floor(__pyx_v_x));
__pyx_v_x1 = (__pyx_v_x0 + 1);
}
__pyx_L6:;
/* … */
__pyx_v_x0 = ((int)floor(__pyx_v_x));
__pyx_v_x1 = (__pyx_v_x0 + 1);
}
__pyx_L6:;
/* … */
__pyx_v_x0 = ((int)floor(__pyx_v_x));
__pyx_v_x1 = (__pyx_v_x0 + 1);
}
__pyx_L6:;
0493:
+0494: I0_bi = (1.0 - dy) * (1.0 - dx) * I0[y0, x0] + \
__pyx_t_4 = __pyx_v_y0;
__pyx_t_6 = __pyx_v_x0;
/* … */
__pyx_t_4 = __pyx_v_y0;
__pyx_t_6 = __pyx_v_x0;
/* … */
__pyx_t_4 = __pyx_v_y0;
__pyx_t_6 = __pyx_v_x0;
/* … */
__pyx_t_4 = __pyx_v_y0;
__pyx_t_6 = __pyx_v_x0;
+0495: (1.0 - dy) * dx * I0[y0, x1] + \
__pyx_t_7 = __pyx_v_y0;
__pyx_t_8 = __pyx_v_x1;
/* … */
__pyx_t_7 = __pyx_v_y0;
__pyx_t_8 = __pyx_v_x1;
/* … */
__pyx_t_7 = __pyx_v_y0;
__pyx_t_8 = __pyx_v_x1;
/* … */
__pyx_t_7 = __pyx_v_y0;
__pyx_t_8 = __pyx_v_x1;
+0496: dy * (1.0 - dx) * I0[y1, x0] + \
__pyx_t_9 = __pyx_v_y1;
__pyx_t_10 = __pyx_v_x0;
/* … */
__pyx_v_I0_bi = ((((((1.0 - __pyx_v_dy) * (1.0 - __pyx_v_dx)) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_4 * __pyx_v_I0.strides[0]) )) + __pyx_t_6)) )))) + (((1.0 - __pyx_v_dy) * __pyx_v_dx) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_7 * __pyx_v_I0.strides[0]) )) + __pyx_t_8)) ))))) + ((__pyx_v_dy * (1.0 - __pyx_v_dx)) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_9 * __pyx_v_I0.strides[0]) )) + __pyx_t_10)) ))))) + ((__pyx_v_dy * __pyx_v_dx) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_11 * __pyx_v_I0.strides[0]) )) + __pyx_t_12)) )))));
/* … */
__pyx_t_9 = __pyx_v_y1;
__pyx_t_10 = __pyx_v_x0;
/* … */
__pyx_v_I0_bi = ((((((1.0 - __pyx_v_dy) * (1.0 - __pyx_v_dx)) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_4 * __pyx_v_I0.strides[0]) )) + __pyx_t_6)) )))) + (((1.0 - __pyx_v_dy) * __pyx_v_dx) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_7 * __pyx_v_I0.strides[0]) )) + __pyx_t_8)) ))))) + ((__pyx_v_dy * (1.0 - __pyx_v_dx)) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_9 * __pyx_v_I0.strides[0]) )) + __pyx_t_10)) ))))) + ((__pyx_v_dy * __pyx_v_dx) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_11 * __pyx_v_I0.strides[0]) )) + __pyx_t_12)) )))));
/* … */
__pyx_t_9 = __pyx_v_y1;
__pyx_t_10 = __pyx_v_x0;
/* … */
__pyx_v_I0_bi = ((((((1.0 - __pyx_v_dy) * (1.0 - __pyx_v_dx)) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_4 * __pyx_v_I0.strides[0]) )) + __pyx_t_6)) )))) + (((1.0 - __pyx_v_dy) * __pyx_v_dx) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_7 * __pyx_v_I0.strides[0]) )) + __pyx_t_8)) ))))) + ((__pyx_v_dy * (1.0 - __pyx_v_dx)) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_9 * __pyx_v_I0.strides[0]) )) + __pyx_t_10)) ))))) + ((__pyx_v_dy * __pyx_v_dx) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_11 * __pyx_v_I0.strides[0]) )) + __pyx_t_12)) )))));
/* … */
__pyx_t_9 = __pyx_v_y1;
__pyx_t_10 = __pyx_v_x0;
/* … */
__pyx_v_I0_bi = ((((((1.0 - __pyx_v_dy) * (1.0 - __pyx_v_dx)) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_4 * __pyx_v_I0.strides[0]) )) + __pyx_t_6)) )))) + (((1.0 - __pyx_v_dy) * __pyx_v_dx) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_7 * __pyx_v_I0.strides[0]) )) + __pyx_t_8)) ))))) + ((__pyx_v_dy * (1.0 - __pyx_v_dx)) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_9 * __pyx_v_I0.strides[0]) )) + __pyx_t_10)) ))))) + ((__pyx_v_dy * __pyx_v_dx) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_11 * __pyx_v_I0.strides[0]) )) + __pyx_t_12)) )))));
+0497: dy * dx * I0[y1, x1]
__pyx_t_11 = __pyx_v_y1;
__pyx_t_12 = __pyx_v_x1;
/* … */
__pyx_t_11 = __pyx_v_y1;
__pyx_t_12 = __pyx_v_x1;
/* … */
__pyx_t_11 = __pyx_v_y1;
__pyx_t_12 = __pyx_v_x1;
/* … */
__pyx_t_11 = __pyx_v_y1;
__pyx_t_12 = __pyx_v_x1;
+0498: err += f((<double>I_n[i, j, k] - W * I0_bi) / sigma)
__pyx_t_12 = __pyx_v_i;
__pyx_t_11 = __pyx_v_j;
__pyx_t_10 = __pyx_v_k;
__pyx_v_err = (__pyx_v_err + __pyx_v_f(((((double)(*((__pyx_t_5numpy_uint64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_uint64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_12 * __pyx_v_I_n.strides[0]) ) + __pyx_t_11 * __pyx_v_I_n.strides[1]) )) + __pyx_t_10)) )))) - (__pyx_v_W * __pyx_v_I0_bi)) / ((__pyx_t_5numpy_float64_t)__pyx_v_sigma))));
}
/* … */
__pyx_t_12 = __pyx_v_i;
__pyx_t_11 = __pyx_v_j;
__pyx_t_10 = __pyx_v_k;
__pyx_v_err = (__pyx_v_err + __pyx_v_f(((((double)(*((__pyx_t_5numpy_uint64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_uint64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_12 * __pyx_v_I_n.strides[0]) ) + __pyx_t_11 * __pyx_v_I_n.strides[1]) )) + __pyx_t_10)) )))) - (__pyx_v_W * __pyx_v_I0_bi)) / __pyx_v_sigma)));
}
/* … */
__pyx_t_12 = __pyx_v_i;
__pyx_t_11 = __pyx_v_j;
__pyx_t_10 = __pyx_v_k;
__pyx_v_err = (__pyx_v_err + __pyx_v_f(((((double)(*((__pyx_t_5numpy_uint32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_uint32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_12 * __pyx_v_I_n.strides[0]) ) + __pyx_t_11 * __pyx_v_I_n.strides[1]) )) + __pyx_t_10)) )))) - (__pyx_v_W * __pyx_v_I0_bi)) / ((__pyx_t_5numpy_float64_t)__pyx_v_sigma))));
}
/* … */
__pyx_t_12 = __pyx_v_i;
__pyx_t_11 = __pyx_v_j;
__pyx_t_10 = __pyx_v_k;
__pyx_v_err = (__pyx_v_err + __pyx_v_f(((((double)(*((__pyx_t_5numpy_uint32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_uint32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_12 * __pyx_v_I_n.strides[0]) ) + __pyx_t_11 * __pyx_v_I_n.strides[1]) )) + __pyx_t_10)) )))) - (__pyx_v_W * __pyx_v_I0_bi)) / __pyx_v_sigma)));
}
0499:
+0500: return err / N
__pyx_r = (__pyx_v_err / ((double)__pyx_v_N)); goto __pyx_L0; /* … */ __pyx_r = (__pyx_v_err / ((double)__pyx_v_N)); goto __pyx_L0; /* … */ __pyx_r = (__pyx_v_err / ((double)__pyx_v_N)); goto __pyx_L0; /* … */ __pyx_r = (__pyx_v_err / ((double)__pyx_v_N)); goto __pyx_L0;
0501:
+0502: cdef double FVU_interp_tr(float_t[:, ::1] errors, uint_t[:, ::1] I_n, float_t[:, ::1] W,
static double __pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_FVU_interp_tr(__Pyx_memviewslice __pyx_v_errors, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float64_t __pyx_v_di0, __pyx_t_5numpy_float64_t __pyx_v_dj0, CYTHON_UNUSED __pyx_t_5numpy_float64_t __pyx_v_di, CYTHON_UNUSED __pyx_t_5numpy_float64_t __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_j;
int __pyx_v_k;
int __pyx_v_y0;
int __pyx_v_y1;
int __pyx_v_x0;
int __pyx_v_x1;
double __pyx_v_y;
double __pyx_v_x;
double __pyx_v_dy;
double __pyx_v_dx;
double __pyx_v_I0_bi;
double __pyx_v_err0;
double __pyx_v_err1;
double __pyx_v_err;
double __pyx_r;
/* … */
/* function exit code */
__pyx_L0:;
return __pyx_r;
}
static double __pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_FVU_interp_tr(__Pyx_memviewslice __pyx_v_errors, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float64_t __pyx_v_di0, __pyx_t_5numpy_float64_t __pyx_v_dj0, CYTHON_UNUSED __pyx_t_5numpy_float64_t __pyx_v_di, CYTHON_UNUSED __pyx_t_5numpy_float64_t __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_j;
int __pyx_v_k;
int __pyx_v_y0;
int __pyx_v_y1;
int __pyx_v_x0;
int __pyx_v_x1;
double __pyx_v_y;
double __pyx_v_x;
double __pyx_v_dy;
double __pyx_v_dx;
double __pyx_v_I0_bi;
double __pyx_v_err0;
double __pyx_v_err1;
double __pyx_v_err;
double __pyx_r;
/* … */
/* function exit code */
__pyx_L0:;
return __pyx_r;
}
static double __pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_FVU_interp_tr(__Pyx_memviewslice __pyx_v_errors, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float32_t __pyx_v_di0, __pyx_t_5numpy_float32_t __pyx_v_dj0, CYTHON_UNUSED __pyx_t_5numpy_float32_t __pyx_v_di, CYTHON_UNUSED __pyx_t_5numpy_float32_t __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_j;
int __pyx_v_k;
int __pyx_v_y0;
int __pyx_v_y1;
int __pyx_v_x0;
int __pyx_v_x1;
double __pyx_v_y;
double __pyx_v_x;
double __pyx_v_dy;
double __pyx_v_dx;
double __pyx_v_I0_bi;
double __pyx_v_err0;
double __pyx_v_err1;
double __pyx_v_err;
double __pyx_r;
/* … */
/* function exit code */
__pyx_L0:;
return __pyx_r;
}
static double __pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_FVU_interp_tr(__Pyx_memviewslice __pyx_v_errors, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float32_t __pyx_v_di0, __pyx_t_5numpy_float32_t __pyx_v_dj0, CYTHON_UNUSED __pyx_t_5numpy_float32_t __pyx_v_di, CYTHON_UNUSED __pyx_t_5numpy_float32_t __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_j;
int __pyx_v_k;
int __pyx_v_y0;
int __pyx_v_y1;
int __pyx_v_x0;
int __pyx_v_x1;
double __pyx_v_y;
double __pyx_v_x;
double __pyx_v_dy;
double __pyx_v_dx;
double __pyx_v_I0_bi;
double __pyx_v_err0;
double __pyx_v_err1;
double __pyx_v_err;
double __pyx_r;
/* … */
/* function exit code */
__pyx_L0:;
return __pyx_r;
}
0503: float_t[:, ::1] I0, float_t[:, :, ::1] u, float_t di0, float_t dj0, float_t di,
0504: float_t dj, double ds_y, double ds_x, double sigma, loss_func f) nogil:
0505: """Return fraction of variance unexplained between the validation set I and trained
0506: profile I0. Find the predicted values at the points (y, x) with bilinear interpolation.
0507: """
+0508: cdef int Y = I_n.shape[0], X = I_n.shape[1], Y0 = I0.shape[0], X0 = I0.shape[1]
__pyx_v_Y = (__pyx_v_I_n.shape[0]); __pyx_v_X = (__pyx_v_I_n.shape[1]); __pyx_v_Y0 = (__pyx_v_I0.shape[0]); __pyx_v_X0 = (__pyx_v_I0.shape[1]); /* … */ __pyx_v_Y = (__pyx_v_I_n.shape[0]); __pyx_v_X = (__pyx_v_I_n.shape[1]); __pyx_v_Y0 = (__pyx_v_I0.shape[0]); __pyx_v_X0 = (__pyx_v_I0.shape[1]); /* … */ __pyx_v_Y = (__pyx_v_I_n.shape[0]); __pyx_v_X = (__pyx_v_I_n.shape[1]); __pyx_v_Y0 = (__pyx_v_I0.shape[0]); __pyx_v_X0 = (__pyx_v_I0.shape[1]); /* … */ __pyx_v_Y = (__pyx_v_I_n.shape[0]); __pyx_v_X = (__pyx_v_I_n.shape[1]); __pyx_v_Y0 = (__pyx_v_I0.shape[0]); __pyx_v_X0 = (__pyx_v_I0.shape[1]);
0509: cdef int j, k, y0, y1, x0, x1
+0510: cdef double y, x, dy, dx, I0_bi, err0, err1, err = 0.0
__pyx_v_err = 0.0; /* … */ __pyx_v_err = 0.0; /* … */ __pyx_v_err = 0.0; /* … */ __pyx_v_err = 0.0;
0511:
+0512: for j in range(Y):
__pyx_t_1 = __pyx_v_Y;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_j = __pyx_t_3;
/* … */
__pyx_t_1 = __pyx_v_Y;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_j = __pyx_t_3;
/* … */
__pyx_t_1 = __pyx_v_Y;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_j = __pyx_t_3;
/* … */
__pyx_t_1 = __pyx_v_Y;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_j = __pyx_t_3;
+0513: for k in range(X):
__pyx_t_4 = __pyx_v_X;
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_k = __pyx_t_6;
/* … */
__pyx_t_4 = __pyx_v_X;
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_k = __pyx_t_6;
/* … */
__pyx_t_4 = __pyx_v_X;
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_k = __pyx_t_6;
/* … */
__pyx_t_4 = __pyx_v_X;
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_k = __pyx_t_6;
+0514: y = (u[0, j, k] - di0) / ds_y
__pyx_t_7 = 0;
__pyx_t_8 = __pyx_v_j;
__pyx_t_9 = __pyx_v_k;
__pyx_v_y = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_7 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_9)) ))) - __pyx_v_di0) / ((__pyx_t_5numpy_float64_t)__pyx_v_ds_y));
/* … */
__pyx_t_7 = 0;
__pyx_t_8 = __pyx_v_j;
__pyx_t_9 = __pyx_v_k;
__pyx_v_y = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_7 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_9)) ))) - __pyx_v_di0) / ((__pyx_t_5numpy_float64_t)__pyx_v_ds_y));
/* … */
__pyx_t_7 = 0;
__pyx_t_8 = __pyx_v_j;
__pyx_t_9 = __pyx_v_k;
__pyx_v_y = (((double)((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_7 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_9)) ))) - __pyx_v_di0)) / __pyx_v_ds_y);
/* … */
__pyx_t_7 = 0;
__pyx_t_8 = __pyx_v_j;
__pyx_t_9 = __pyx_v_k;
__pyx_v_y = (((double)((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_7 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_9)) ))) - __pyx_v_di0)) / __pyx_v_ds_y);
+0515: x = (u[1, j, k] - dj0) / ds_x
__pyx_t_9 = 1;
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_v_x = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_9 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) ))) - __pyx_v_dj0) / ((__pyx_t_5numpy_float64_t)__pyx_v_ds_x));
/* … */
__pyx_t_9 = 1;
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_v_x = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_9 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) ))) - __pyx_v_dj0) / ((__pyx_t_5numpy_float64_t)__pyx_v_ds_x));
/* … */
__pyx_t_9 = 1;
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_v_x = (((double)((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_9 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) ))) - __pyx_v_dj0)) / __pyx_v_ds_x);
/* … */
__pyx_t_9 = 1;
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_v_x = (((double)((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_9 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) ))) - __pyx_v_dj0)) / __pyx_v_ds_x);
0516:
+0517: if y <= 0.0:
__pyx_t_10 = ((__pyx_v_y <= 0.0) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L7;
}
/* … */
__pyx_t_10 = ((__pyx_v_y <= 0.0) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L7;
}
/* … */
__pyx_t_10 = ((__pyx_v_y <= 0.0) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L7;
}
/* … */
__pyx_t_10 = ((__pyx_v_y <= 0.0) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L7;
}
+0518: dy = 0.0; y0 = 0; y1 = 0
__pyx_v_dy = 0.0;
__pyx_v_y0 = 0;
__pyx_v_y1 = 0;
/* … */
__pyx_v_dy = 0.0;
__pyx_v_y0 = 0;
__pyx_v_y1 = 0;
/* … */
__pyx_v_dy = 0.0;
__pyx_v_y0 = 0;
__pyx_v_y1 = 0;
/* … */
__pyx_v_dy = 0.0;
__pyx_v_y0 = 0;
__pyx_v_y1 = 0;
+0519: elif y >= Y0 - 1.0:
__pyx_t_10 = ((__pyx_v_y >= (__pyx_v_Y0 - 1.0)) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L7;
}
/* … */
__pyx_t_10 = ((__pyx_v_y >= (__pyx_v_Y0 - 1.0)) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L7;
}
/* … */
__pyx_t_10 = ((__pyx_v_y >= (__pyx_v_Y0 - 1.0)) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L7;
}
/* … */
__pyx_t_10 = ((__pyx_v_y >= (__pyx_v_Y0 - 1.0)) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L7;
}
+0520: dy = 0.0; y0 = Y0 - 1; y1 = Y0 - 1
__pyx_v_dy = 0.0;
__pyx_v_y0 = (__pyx_v_Y0 - 1);
__pyx_v_y1 = (__pyx_v_Y0 - 1);
/* … */
__pyx_v_dy = 0.0;
__pyx_v_y0 = (__pyx_v_Y0 - 1);
__pyx_v_y1 = (__pyx_v_Y0 - 1);
/* … */
__pyx_v_dy = 0.0;
__pyx_v_y0 = (__pyx_v_Y0 - 1);
__pyx_v_y1 = (__pyx_v_Y0 - 1);
/* … */
__pyx_v_dy = 0.0;
__pyx_v_y0 = (__pyx_v_Y0 - 1);
__pyx_v_y1 = (__pyx_v_Y0 - 1);
0521: else:
+0522: dy = y - floor(y)
/*else*/ {
__pyx_v_dy = (__pyx_v_y - floor(__pyx_v_y));
/* … */
/*else*/ {
__pyx_v_dy = (__pyx_v_y - floor(__pyx_v_y));
/* … */
/*else*/ {
__pyx_v_dy = (__pyx_v_y - floor(__pyx_v_y));
/* … */
/*else*/ {
__pyx_v_dy = (__pyx_v_y - floor(__pyx_v_y));
+0523: y0 = <int>floor(y); y1 = y0 + 1
__pyx_v_y0 = ((int)floor(__pyx_v_y));
__pyx_v_y1 = (__pyx_v_y0 + 1);
}
__pyx_L7:;
/* … */
__pyx_v_y0 = ((int)floor(__pyx_v_y));
__pyx_v_y1 = (__pyx_v_y0 + 1);
}
__pyx_L7:;
/* … */
__pyx_v_y0 = ((int)floor(__pyx_v_y));
__pyx_v_y1 = (__pyx_v_y0 + 1);
}
__pyx_L7:;
/* … */
__pyx_v_y0 = ((int)floor(__pyx_v_y));
__pyx_v_y1 = (__pyx_v_y0 + 1);
}
__pyx_L7:;
0524:
+0525: if x <= 0.0:
__pyx_t_10 = ((__pyx_v_x <= 0.0) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L8;
}
/* … */
__pyx_t_10 = ((__pyx_v_x <= 0.0) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L8;
}
/* … */
__pyx_t_10 = ((__pyx_v_x <= 0.0) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L8;
}
/* … */
__pyx_t_10 = ((__pyx_v_x <= 0.0) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L8;
}
+0526: dx = 0.0; x0 = 0; x1 = 0
__pyx_v_dx = 0.0;
__pyx_v_x0 = 0;
__pyx_v_x1 = 0;
/* … */
__pyx_v_dx = 0.0;
__pyx_v_x0 = 0;
__pyx_v_x1 = 0;
/* … */
__pyx_v_dx = 0.0;
__pyx_v_x0 = 0;
__pyx_v_x1 = 0;
/* … */
__pyx_v_dx = 0.0;
__pyx_v_x0 = 0;
__pyx_v_x1 = 0;
+0527: elif x >= X0 - 1.0:
__pyx_t_10 = ((__pyx_v_x >= (__pyx_v_X0 - 1.0)) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L8;
}
/* … */
__pyx_t_10 = ((__pyx_v_x >= (__pyx_v_X0 - 1.0)) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L8;
}
/* … */
__pyx_t_10 = ((__pyx_v_x >= (__pyx_v_X0 - 1.0)) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L8;
}
/* … */
__pyx_t_10 = ((__pyx_v_x >= (__pyx_v_X0 - 1.0)) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L8;
}
+0528: dx = 0.0; x0 = X0 - 1; x1 = X0 - 1
__pyx_v_dx = 0.0;
__pyx_v_x0 = (__pyx_v_X0 - 1);
__pyx_v_x1 = (__pyx_v_X0 - 1);
/* … */
__pyx_v_dx = 0.0;
__pyx_v_x0 = (__pyx_v_X0 - 1);
__pyx_v_x1 = (__pyx_v_X0 - 1);
/* … */
__pyx_v_dx = 0.0;
__pyx_v_x0 = (__pyx_v_X0 - 1);
__pyx_v_x1 = (__pyx_v_X0 - 1);
/* … */
__pyx_v_dx = 0.0;
__pyx_v_x0 = (__pyx_v_X0 - 1);
__pyx_v_x1 = (__pyx_v_X0 - 1);
0529: else:
+0530: dx = x - floor(x)
/*else*/ {
__pyx_v_dx = (__pyx_v_x - floor(__pyx_v_x));
/* … */
/*else*/ {
__pyx_v_dx = (__pyx_v_x - floor(__pyx_v_x));
/* … */
/*else*/ {
__pyx_v_dx = (__pyx_v_x - floor(__pyx_v_x));
/* … */
/*else*/ {
__pyx_v_dx = (__pyx_v_x - floor(__pyx_v_x));
+0531: x0 = <int>floor(x); x1 = x0 + 1
__pyx_v_x0 = ((int)floor(__pyx_v_x));
__pyx_v_x1 = (__pyx_v_x0 + 1);
}
__pyx_L8:;
/* … */
__pyx_v_x0 = ((int)floor(__pyx_v_x));
__pyx_v_x1 = (__pyx_v_x0 + 1);
}
__pyx_L8:;
/* … */
__pyx_v_x0 = ((int)floor(__pyx_v_x));
__pyx_v_x1 = (__pyx_v_x0 + 1);
}
__pyx_L8:;
/* … */
__pyx_v_x0 = ((int)floor(__pyx_v_x));
__pyx_v_x1 = (__pyx_v_x0 + 1);
}
__pyx_L8:;
0532:
+0533: I0_bi = (1.0 - dy) * (1.0 - dx) * I0[y0, x0] + \
__pyx_t_7 = __pyx_v_y0;
__pyx_t_8 = __pyx_v_x0;
/* … */
__pyx_t_7 = __pyx_v_y0;
__pyx_t_8 = __pyx_v_x0;
/* … */
__pyx_t_7 = __pyx_v_y0;
__pyx_t_8 = __pyx_v_x0;
/* … */
__pyx_t_7 = __pyx_v_y0;
__pyx_t_8 = __pyx_v_x0;
+0534: (1.0 - dy) * dx * I0[y0, x1] + \
__pyx_t_9 = __pyx_v_y0;
__pyx_t_11 = __pyx_v_x1;
/* … */
__pyx_t_9 = __pyx_v_y0;
__pyx_t_11 = __pyx_v_x1;
/* … */
__pyx_t_9 = __pyx_v_y0;
__pyx_t_11 = __pyx_v_x1;
/* … */
__pyx_t_9 = __pyx_v_y0;
__pyx_t_11 = __pyx_v_x1;
+0535: dy * (1.0 - dx) * I0[y1, x0] + \
__pyx_t_12 = __pyx_v_y1;
__pyx_t_13 = __pyx_v_x0;
/* … */
__pyx_v_I0_bi = ((((((1.0 - __pyx_v_dy) * (1.0 - __pyx_v_dx)) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_7 * __pyx_v_I0.strides[0]) )) + __pyx_t_8)) )))) + (((1.0 - __pyx_v_dy) * __pyx_v_dx) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_9 * __pyx_v_I0.strides[0]) )) + __pyx_t_11)) ))))) + ((__pyx_v_dy * (1.0 - __pyx_v_dx)) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_12 * __pyx_v_I0.strides[0]) )) + __pyx_t_13)) ))))) + ((__pyx_v_dy * __pyx_v_dx) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_14 * __pyx_v_I0.strides[0]) )) + __pyx_t_15)) )))));
/* … */
__pyx_t_12 = __pyx_v_y1;
__pyx_t_13 = __pyx_v_x0;
/* … */
__pyx_v_I0_bi = ((((((1.0 - __pyx_v_dy) * (1.0 - __pyx_v_dx)) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_7 * __pyx_v_I0.strides[0]) )) + __pyx_t_8)) )))) + (((1.0 - __pyx_v_dy) * __pyx_v_dx) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_9 * __pyx_v_I0.strides[0]) )) + __pyx_t_11)) ))))) + ((__pyx_v_dy * (1.0 - __pyx_v_dx)) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_12 * __pyx_v_I0.strides[0]) )) + __pyx_t_13)) ))))) + ((__pyx_v_dy * __pyx_v_dx) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_14 * __pyx_v_I0.strides[0]) )) + __pyx_t_15)) )))));
/* … */
__pyx_t_12 = __pyx_v_y1;
__pyx_t_13 = __pyx_v_x0;
/* … */
__pyx_v_I0_bi = ((((((1.0 - __pyx_v_dy) * (1.0 - __pyx_v_dx)) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_7 * __pyx_v_I0.strides[0]) )) + __pyx_t_8)) )))) + (((1.0 - __pyx_v_dy) * __pyx_v_dx) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_9 * __pyx_v_I0.strides[0]) )) + __pyx_t_11)) ))))) + ((__pyx_v_dy * (1.0 - __pyx_v_dx)) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_12 * __pyx_v_I0.strides[0]) )) + __pyx_t_13)) ))))) + ((__pyx_v_dy * __pyx_v_dx) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_14 * __pyx_v_I0.strides[0]) )) + __pyx_t_15)) )))));
/* … */
__pyx_t_12 = __pyx_v_y1;
__pyx_t_13 = __pyx_v_x0;
/* … */
__pyx_v_I0_bi = ((((((1.0 - __pyx_v_dy) * (1.0 - __pyx_v_dx)) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_7 * __pyx_v_I0.strides[0]) )) + __pyx_t_8)) )))) + (((1.0 - __pyx_v_dy) * __pyx_v_dx) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_9 * __pyx_v_I0.strides[0]) )) + __pyx_t_11)) ))))) + ((__pyx_v_dy * (1.0 - __pyx_v_dx)) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_12 * __pyx_v_I0.strides[0]) )) + __pyx_t_13)) ))))) + ((__pyx_v_dy * __pyx_v_dx) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_14 * __pyx_v_I0.strides[0]) )) + __pyx_t_15)) )))));
+0536: dy * dx * I0[y1, x1]
__pyx_t_14 = __pyx_v_y1;
__pyx_t_15 = __pyx_v_x1;
/* … */
__pyx_t_14 = __pyx_v_y1;
__pyx_t_15 = __pyx_v_x1;
/* … */
__pyx_t_14 = __pyx_v_y1;
__pyx_t_15 = __pyx_v_x1;
/* … */
__pyx_t_14 = __pyx_v_y1;
__pyx_t_15 = __pyx_v_x1;
+0537: err0 = f((<double>I_n[j, k] - W[j, k] * I0_bi) / sigma)
__pyx_t_15 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_t_13 = __pyx_v_j;
__pyx_t_12 = __pyx_v_k;
__pyx_v_err0 = __pyx_v_f(((((double)(*((__pyx_t_5numpy_uint64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_15 * __pyx_v_I_n.strides[0]) )) + __pyx_t_14)) )))) - ((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_13 * __pyx_v_W.strides[0]) )) + __pyx_t_12)) ))) * __pyx_v_I0_bi)) / ((__pyx_t_5numpy_float64_t)__pyx_v_sigma)));
/* … */
__pyx_t_15 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_t_13 = __pyx_v_j;
__pyx_t_12 = __pyx_v_k;
__pyx_v_err0 = __pyx_v_f(((((double)(*((__pyx_t_5numpy_uint32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_15 * __pyx_v_I_n.strides[0]) )) + __pyx_t_14)) )))) - ((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_13 * __pyx_v_W.strides[0]) )) + __pyx_t_12)) ))) * __pyx_v_I0_bi)) / ((__pyx_t_5numpy_float64_t)__pyx_v_sigma)));
/* … */
__pyx_t_15 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_t_13 = __pyx_v_j;
__pyx_t_12 = __pyx_v_k;
__pyx_v_err0 = __pyx_v_f(((((double)(*((__pyx_t_5numpy_uint64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_15 * __pyx_v_I_n.strides[0]) )) + __pyx_t_14)) )))) - ((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_13 * __pyx_v_W.strides[0]) )) + __pyx_t_12)) ))) * __pyx_v_I0_bi)) / __pyx_v_sigma));
/* … */
__pyx_t_15 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_t_13 = __pyx_v_j;
__pyx_t_12 = __pyx_v_k;
__pyx_v_err0 = __pyx_v_f(((((double)(*((__pyx_t_5numpy_uint32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_15 * __pyx_v_I_n.strides[0]) )) + __pyx_t_14)) )))) - ((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_13 * __pyx_v_W.strides[0]) )) + __pyx_t_12)) ))) * __pyx_v_I0_bi)) / __pyx_v_sigma));
0538:
+0539: y = (u[0, j, k] - di0) / ds_y
__pyx_t_12 = 0;
__pyx_t_13 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_v_y = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_12 * __pyx_v_u.strides[0]) ) + __pyx_t_13 * __pyx_v_u.strides[1]) )) + __pyx_t_14)) ))) - __pyx_v_di0) / ((__pyx_t_5numpy_float64_t)__pyx_v_ds_y));
/* … */
__pyx_t_12 = 0;
__pyx_t_13 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_v_y = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_12 * __pyx_v_u.strides[0]) ) + __pyx_t_13 * __pyx_v_u.strides[1]) )) + __pyx_t_14)) ))) - __pyx_v_di0) / ((__pyx_t_5numpy_float64_t)__pyx_v_ds_y));
/* … */
__pyx_t_12 = 0;
__pyx_t_13 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_v_y = (((double)((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_12 * __pyx_v_u.strides[0]) ) + __pyx_t_13 * __pyx_v_u.strides[1]) )) + __pyx_t_14)) ))) - __pyx_v_di0)) / __pyx_v_ds_y);
/* … */
__pyx_t_12 = 0;
__pyx_t_13 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_v_y = (((double)((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_12 * __pyx_v_u.strides[0]) ) + __pyx_t_13 * __pyx_v_u.strides[1]) )) + __pyx_t_14)) ))) - __pyx_v_di0)) / __pyx_v_ds_y);
+0540: x = (u[1, j, k] - dj0) / ds_x
__pyx_t_14 = 1;
__pyx_t_13 = __pyx_v_j;
__pyx_t_12 = __pyx_v_k;
__pyx_v_x = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_14 * __pyx_v_u.strides[0]) ) + __pyx_t_13 * __pyx_v_u.strides[1]) )) + __pyx_t_12)) ))) - __pyx_v_dj0) / ((__pyx_t_5numpy_float64_t)__pyx_v_ds_x));
/* … */
__pyx_t_14 = 1;
__pyx_t_13 = __pyx_v_j;
__pyx_t_12 = __pyx_v_k;
__pyx_v_x = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_14 * __pyx_v_u.strides[0]) ) + __pyx_t_13 * __pyx_v_u.strides[1]) )) + __pyx_t_12)) ))) - __pyx_v_dj0) / ((__pyx_t_5numpy_float64_t)__pyx_v_ds_x));
/* … */
__pyx_t_14 = 1;
__pyx_t_13 = __pyx_v_j;
__pyx_t_12 = __pyx_v_k;
__pyx_v_x = (((double)((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_14 * __pyx_v_u.strides[0]) ) + __pyx_t_13 * __pyx_v_u.strides[1]) )) + __pyx_t_12)) ))) - __pyx_v_dj0)) / __pyx_v_ds_x);
/* … */
__pyx_t_14 = 1;
__pyx_t_13 = __pyx_v_j;
__pyx_t_12 = __pyx_v_k;
__pyx_v_x = (((double)((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_14 * __pyx_v_u.strides[0]) ) + __pyx_t_13 * __pyx_v_u.strides[1]) )) + __pyx_t_12)) ))) - __pyx_v_dj0)) / __pyx_v_ds_x);
0541:
+0542: if y <= 0.0:
__pyx_t_10 = ((__pyx_v_y <= 0.0) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L9;
}
/* … */
__pyx_t_10 = ((__pyx_v_y <= 0.0) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L9;
}
/* … */
__pyx_t_10 = ((__pyx_v_y <= 0.0) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L9;
}
/* … */
__pyx_t_10 = ((__pyx_v_y <= 0.0) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L9;
}
+0543: dy = 0.0; y0 = 0; y1 = 0
__pyx_v_dy = 0.0;
__pyx_v_y0 = 0;
__pyx_v_y1 = 0;
/* … */
__pyx_v_dy = 0.0;
__pyx_v_y0 = 0;
__pyx_v_y1 = 0;
/* … */
__pyx_v_dy = 0.0;
__pyx_v_y0 = 0;
__pyx_v_y1 = 0;
/* … */
__pyx_v_dy = 0.0;
__pyx_v_y0 = 0;
__pyx_v_y1 = 0;
+0544: elif y >= Y0 - 1.0:
__pyx_t_10 = ((__pyx_v_y >= (__pyx_v_Y0 - 1.0)) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L9;
}
/* … */
__pyx_t_10 = ((__pyx_v_y >= (__pyx_v_Y0 - 1.0)) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L9;
}
/* … */
__pyx_t_10 = ((__pyx_v_y >= (__pyx_v_Y0 - 1.0)) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L9;
}
/* … */
__pyx_t_10 = ((__pyx_v_y >= (__pyx_v_Y0 - 1.0)) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L9;
}
+0545: dy = 0.0; y0 = Y0 - 1; y1 = Y0 - 1
__pyx_v_dy = 0.0;
__pyx_v_y0 = (__pyx_v_Y0 - 1);
__pyx_v_y1 = (__pyx_v_Y0 - 1);
/* … */
__pyx_v_dy = 0.0;
__pyx_v_y0 = (__pyx_v_Y0 - 1);
__pyx_v_y1 = (__pyx_v_Y0 - 1);
/* … */
__pyx_v_dy = 0.0;
__pyx_v_y0 = (__pyx_v_Y0 - 1);
__pyx_v_y1 = (__pyx_v_Y0 - 1);
/* … */
__pyx_v_dy = 0.0;
__pyx_v_y0 = (__pyx_v_Y0 - 1);
__pyx_v_y1 = (__pyx_v_Y0 - 1);
0546: else:
+0547: dy = y - floor(y)
/*else*/ {
__pyx_v_dy = (__pyx_v_y - floor(__pyx_v_y));
/* … */
/*else*/ {
__pyx_v_dy = (__pyx_v_y - floor(__pyx_v_y));
/* … */
/*else*/ {
__pyx_v_dy = (__pyx_v_y - floor(__pyx_v_y));
/* … */
/*else*/ {
__pyx_v_dy = (__pyx_v_y - floor(__pyx_v_y));
+0548: y0 = <int>floor(y); y1 = y0 + 1
__pyx_v_y0 = ((int)floor(__pyx_v_y));
__pyx_v_y1 = (__pyx_v_y0 + 1);
}
__pyx_L9:;
/* … */
__pyx_v_y0 = ((int)floor(__pyx_v_y));
__pyx_v_y1 = (__pyx_v_y0 + 1);
}
__pyx_L9:;
/* … */
__pyx_v_y0 = ((int)floor(__pyx_v_y));
__pyx_v_y1 = (__pyx_v_y0 + 1);
}
__pyx_L9:;
/* … */
__pyx_v_y0 = ((int)floor(__pyx_v_y));
__pyx_v_y1 = (__pyx_v_y0 + 1);
}
__pyx_L9:;
0549:
+0550: if x <= 0.0:
__pyx_t_10 = ((__pyx_v_x <= 0.0) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L10;
}
/* … */
__pyx_t_10 = ((__pyx_v_x <= 0.0) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L10;
}
/* … */
__pyx_t_10 = ((__pyx_v_x <= 0.0) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L10;
}
/* … */
__pyx_t_10 = ((__pyx_v_x <= 0.0) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L10;
}
+0551: dx = 0.0; x0 = 0; x1 = 0
__pyx_v_dx = 0.0;
__pyx_v_x0 = 0;
__pyx_v_x1 = 0;
/* … */
__pyx_v_dx = 0.0;
__pyx_v_x0 = 0;
__pyx_v_x1 = 0;
/* … */
__pyx_v_dx = 0.0;
__pyx_v_x0 = 0;
__pyx_v_x1 = 0;
/* … */
__pyx_v_dx = 0.0;
__pyx_v_x0 = 0;
__pyx_v_x1 = 0;
+0552: elif x >= X0 - 1.0:
__pyx_t_10 = ((__pyx_v_x >= (__pyx_v_X0 - 1.0)) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L10;
}
/* … */
__pyx_t_10 = ((__pyx_v_x >= (__pyx_v_X0 - 1.0)) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L10;
}
/* … */
__pyx_t_10 = ((__pyx_v_x >= (__pyx_v_X0 - 1.0)) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L10;
}
/* … */
__pyx_t_10 = ((__pyx_v_x >= (__pyx_v_X0 - 1.0)) != 0);
if (__pyx_t_10) {
/* … */
goto __pyx_L10;
}
+0553: dx = 0.0; x0 = X0 - 1; x1 = X0 - 1
__pyx_v_dx = 0.0;
__pyx_v_x0 = (__pyx_v_X0 - 1);
__pyx_v_x1 = (__pyx_v_X0 - 1);
/* … */
__pyx_v_dx = 0.0;
__pyx_v_x0 = (__pyx_v_X0 - 1);
__pyx_v_x1 = (__pyx_v_X0 - 1);
/* … */
__pyx_v_dx = 0.0;
__pyx_v_x0 = (__pyx_v_X0 - 1);
__pyx_v_x1 = (__pyx_v_X0 - 1);
/* … */
__pyx_v_dx = 0.0;
__pyx_v_x0 = (__pyx_v_X0 - 1);
__pyx_v_x1 = (__pyx_v_X0 - 1);
0554: else:
+0555: dx = x - floor(x)
/*else*/ {
__pyx_v_dx = (__pyx_v_x - floor(__pyx_v_x));
/* … */
/*else*/ {
__pyx_v_dx = (__pyx_v_x - floor(__pyx_v_x));
/* … */
/*else*/ {
__pyx_v_dx = (__pyx_v_x - floor(__pyx_v_x));
/* … */
/*else*/ {
__pyx_v_dx = (__pyx_v_x - floor(__pyx_v_x));
+0556: x0 = <int>floor(x); x1 = x0 + 1
__pyx_v_x0 = ((int)floor(__pyx_v_x));
__pyx_v_x1 = (__pyx_v_x0 + 1);
}
__pyx_L10:;
/* … */
__pyx_v_x0 = ((int)floor(__pyx_v_x));
__pyx_v_x1 = (__pyx_v_x0 + 1);
}
__pyx_L10:;
/* … */
__pyx_v_x0 = ((int)floor(__pyx_v_x));
__pyx_v_x1 = (__pyx_v_x0 + 1);
}
__pyx_L10:;
/* … */
__pyx_v_x0 = ((int)floor(__pyx_v_x));
__pyx_v_x1 = (__pyx_v_x0 + 1);
}
__pyx_L10:;
0557:
+0558: I0_bi = (1.0 - dy) * (1.0 - dx) * I0[y0, x0] + \
__pyx_t_12 = __pyx_v_y0;
__pyx_t_13 = __pyx_v_x0;
/* … */
__pyx_t_12 = __pyx_v_y0;
__pyx_t_13 = __pyx_v_x0;
/* … */
__pyx_t_12 = __pyx_v_y0;
__pyx_t_13 = __pyx_v_x0;
/* … */
__pyx_t_12 = __pyx_v_y0;
__pyx_t_13 = __pyx_v_x0;
+0559: (1.0 - dy) * dx * I0[y0, x1] + \
__pyx_t_14 = __pyx_v_y0;
__pyx_t_15 = __pyx_v_x1;
/* … */
__pyx_t_14 = __pyx_v_y0;
__pyx_t_15 = __pyx_v_x1;
/* … */
__pyx_t_14 = __pyx_v_y0;
__pyx_t_15 = __pyx_v_x1;
/* … */
__pyx_t_14 = __pyx_v_y0;
__pyx_t_15 = __pyx_v_x1;
+0560: dy * (1.0 - dx) * I0[y1, x0] + \
__pyx_t_11 = __pyx_v_y1;
__pyx_t_9 = __pyx_v_x0;
/* … */
__pyx_v_I0_bi = ((((((1.0 - __pyx_v_dy) * (1.0 - __pyx_v_dx)) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_12 * __pyx_v_I0.strides[0]) )) + __pyx_t_13)) )))) + (((1.0 - __pyx_v_dy) * __pyx_v_dx) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_14 * __pyx_v_I0.strides[0]) )) + __pyx_t_15)) ))))) + ((__pyx_v_dy * (1.0 - __pyx_v_dx)) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_11 * __pyx_v_I0.strides[0]) )) + __pyx_t_9)) ))))) + ((__pyx_v_dy * __pyx_v_dx) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_8 * __pyx_v_I0.strides[0]) )) + __pyx_t_7)) )))));
/* … */
__pyx_t_11 = __pyx_v_y1;
__pyx_t_9 = __pyx_v_x0;
/* … */
__pyx_v_I0_bi = ((((((1.0 - __pyx_v_dy) * (1.0 - __pyx_v_dx)) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_12 * __pyx_v_I0.strides[0]) )) + __pyx_t_13)) )))) + (((1.0 - __pyx_v_dy) * __pyx_v_dx) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_14 * __pyx_v_I0.strides[0]) )) + __pyx_t_15)) ))))) + ((__pyx_v_dy * (1.0 - __pyx_v_dx)) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_11 * __pyx_v_I0.strides[0]) )) + __pyx_t_9)) ))))) + ((__pyx_v_dy * __pyx_v_dx) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_8 * __pyx_v_I0.strides[0]) )) + __pyx_t_7)) )))));
/* … */
__pyx_t_11 = __pyx_v_y1;
__pyx_t_9 = __pyx_v_x0;
/* … */
__pyx_v_I0_bi = ((((((1.0 - __pyx_v_dy) * (1.0 - __pyx_v_dx)) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_12 * __pyx_v_I0.strides[0]) )) + __pyx_t_13)) )))) + (((1.0 - __pyx_v_dy) * __pyx_v_dx) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_14 * __pyx_v_I0.strides[0]) )) + __pyx_t_15)) ))))) + ((__pyx_v_dy * (1.0 - __pyx_v_dx)) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_11 * __pyx_v_I0.strides[0]) )) + __pyx_t_9)) ))))) + ((__pyx_v_dy * __pyx_v_dx) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_8 * __pyx_v_I0.strides[0]) )) + __pyx_t_7)) )))));
/* … */
__pyx_t_11 = __pyx_v_y1;
__pyx_t_9 = __pyx_v_x0;
/* … */
__pyx_v_I0_bi = ((((((1.0 - __pyx_v_dy) * (1.0 - __pyx_v_dx)) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_12 * __pyx_v_I0.strides[0]) )) + __pyx_t_13)) )))) + (((1.0 - __pyx_v_dy) * __pyx_v_dx) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_14 * __pyx_v_I0.strides[0]) )) + __pyx_t_15)) ))))) + ((__pyx_v_dy * (1.0 - __pyx_v_dx)) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_11 * __pyx_v_I0.strides[0]) )) + __pyx_t_9)) ))))) + ((__pyx_v_dy * __pyx_v_dx) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_8 * __pyx_v_I0.strides[0]) )) + __pyx_t_7)) )))));
+0561: dy * dx * I0[y1, x1]
__pyx_t_8 = __pyx_v_y1;
__pyx_t_7 = __pyx_v_x1;
/* … */
__pyx_t_8 = __pyx_v_y1;
__pyx_t_7 = __pyx_v_x1;
/* … */
__pyx_t_8 = __pyx_v_y1;
__pyx_t_7 = __pyx_v_x1;
/* … */
__pyx_t_8 = __pyx_v_y1;
__pyx_t_7 = __pyx_v_x1;
+0562: err1 = f((<double>I_n[j, k] - W[j, k] * I0_bi) / sigma)
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
__pyx_t_9 = __pyx_v_j;
__pyx_t_11 = __pyx_v_k;
__pyx_v_err1 = __pyx_v_f(((((double)(*((__pyx_t_5numpy_uint64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_7 * __pyx_v_I_n.strides[0]) )) + __pyx_t_8)) )))) - ((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_9 * __pyx_v_W.strides[0]) )) + __pyx_t_11)) ))) * __pyx_v_I0_bi)) / ((__pyx_t_5numpy_float64_t)__pyx_v_sigma)));
/* … */
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
__pyx_t_9 = __pyx_v_j;
__pyx_t_11 = __pyx_v_k;
__pyx_v_err1 = __pyx_v_f(((((double)(*((__pyx_t_5numpy_uint32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_7 * __pyx_v_I_n.strides[0]) )) + __pyx_t_8)) )))) - ((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_9 * __pyx_v_W.strides[0]) )) + __pyx_t_11)) ))) * __pyx_v_I0_bi)) / ((__pyx_t_5numpy_float64_t)__pyx_v_sigma)));
/* … */
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
__pyx_t_9 = __pyx_v_j;
__pyx_t_11 = __pyx_v_k;
__pyx_v_err1 = __pyx_v_f(((((double)(*((__pyx_t_5numpy_uint64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_7 * __pyx_v_I_n.strides[0]) )) + __pyx_t_8)) )))) - ((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_9 * __pyx_v_W.strides[0]) )) + __pyx_t_11)) ))) * __pyx_v_I0_bi)) / __pyx_v_sigma));
/* … */
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
__pyx_t_9 = __pyx_v_j;
__pyx_t_11 = __pyx_v_k;
__pyx_v_err1 = __pyx_v_f(((((double)(*((__pyx_t_5numpy_uint32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_7 * __pyx_v_I_n.strides[0]) )) + __pyx_t_8)) )))) - ((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_9 * __pyx_v_W.strides[0]) )) + __pyx_t_11)) ))) * __pyx_v_I0_bi)) / __pyx_v_sigma));
0563:
+0564: err += (errors[j, k] - err0 + err1)
__pyx_t_11 = __pyx_v_j;
__pyx_t_9 = __pyx_v_k;
__pyx_v_err = (__pyx_v_err + (((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_errors.data + __pyx_t_11 * __pyx_v_errors.strides[0]) )) + __pyx_t_9)) ))) - __pyx_v_err0) + __pyx_v_err1));
}
}
/* … */
__pyx_t_11 = __pyx_v_j;
__pyx_t_9 = __pyx_v_k;
__pyx_v_err = (__pyx_v_err + (((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_errors.data + __pyx_t_11 * __pyx_v_errors.strides[0]) )) + __pyx_t_9)) ))) - __pyx_v_err0) + __pyx_v_err1));
}
}
/* … */
__pyx_t_11 = __pyx_v_j;
__pyx_t_9 = __pyx_v_k;
__pyx_v_err = (__pyx_v_err + (((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_errors.data + __pyx_t_11 * __pyx_v_errors.strides[0]) )) + __pyx_t_9)) ))) - __pyx_v_err0) + __pyx_v_err1));
}
}
/* … */
__pyx_t_11 = __pyx_v_j;
__pyx_t_9 = __pyx_v_k;
__pyx_v_err = (__pyx_v_err + (((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_errors.data + __pyx_t_11 * __pyx_v_errors.strides[0]) )) + __pyx_t_9)) ))) - __pyx_v_err0) + __pyx_v_err1));
}
}
0565:
+0566: return err / (Y * X)
__pyx_r = (__pyx_v_err / ((double)(__pyx_v_Y * __pyx_v_X))); goto __pyx_L0; /* … */ __pyx_r = (__pyx_v_err / ((double)(__pyx_v_Y * __pyx_v_X))); goto __pyx_L0; /* … */ __pyx_r = (__pyx_v_err / ((double)(__pyx_v_Y * __pyx_v_X))); goto __pyx_L0; /* … */ __pyx_r = (__pyx_v_err / ((double)(__pyx_v_Y * __pyx_v_X))); goto __pyx_L0;
0567:
+0568: cdef void pm_gsearcher(uint_t[:, :, ::1] I_n, float_t[:, ::1] W, float_t[:, ::1] I0, float_t[:, :, ::1] u,
static void __pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_pm_gsearcher(__Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_derrs, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, int __pyx_v_j, int __pyx_v_k, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_wsize, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
double __pyx_v_err;
double __pyx_v_err0;
double __pyx_v_uy_min;
double __pyx_v_ux_min;
double __pyx_v_err_min;
double __pyx_v_ux;
double __pyx_v_uy;
double __pyx_v_dsw_y;
double __pyx_v_dsw_x;
int __pyx_v_ii;
int __pyx_v_jj;
/* … */
/* function exit code */
}
static void __pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_pm_gsearcher(__Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_derrs, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, int __pyx_v_j, int __pyx_v_k, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_wsize, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
double __pyx_v_err;
double __pyx_v_err0;
double __pyx_v_uy_min;
double __pyx_v_ux_min;
double __pyx_v_err_min;
double __pyx_v_ux;
double __pyx_v_uy;
double __pyx_v_dsw_y;
double __pyx_v_dsw_x;
int __pyx_v_ii;
int __pyx_v_jj;
/* … */
/* function exit code */
}
static void __pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_pm_gsearcher(__Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_derrs, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, int __pyx_v_j, int __pyx_v_k, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_wsize, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
double __pyx_v_err;
double __pyx_v_err0;
double __pyx_v_uy_min;
double __pyx_v_ux_min;
double __pyx_v_err_min;
double __pyx_v_ux;
double __pyx_v_uy;
double __pyx_v_dsw_y;
double __pyx_v_dsw_x;
int __pyx_v_ii;
int __pyx_v_jj;
/* … */
/* function exit code */
}
static void __pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_pm_gsearcher(__Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_derrs, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, int __pyx_v_j, int __pyx_v_k, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_wsize, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
double __pyx_v_err;
double __pyx_v_err0;
double __pyx_v_uy_min;
double __pyx_v_ux_min;
double __pyx_v_err_min;
double __pyx_v_ux;
double __pyx_v_uy;
double __pyx_v_dsw_y;
double __pyx_v_dsw_x;
int __pyx_v_ii;
int __pyx_v_jj;
/* … */
/* function exit code */
}
0569: float_t[:, ::1] derrs, float_t[::1] di, float_t[::1] dj, int j, int k, double sw_y, double sw_x,
0570: unsigned wsize, double ds_y, double ds_x, double sigma, loss_func f) nogil:
+0571: cdef double err, err0, uy_min = 0.0, ux_min = 0.0, err_min=FLOAT_MAX, ux, uy
__pyx_v_uy_min = 0.0; __pyx_v_ux_min = 0.0; __pyx_v_err_min = 1.7976931348623157e+308; /* … */ __pyx_v_uy_min = 0.0; __pyx_v_ux_min = 0.0; __pyx_v_err_min = 1.7976931348623157e+308; /* … */ __pyx_v_uy_min = 0.0; __pyx_v_ux_min = 0.0; __pyx_v_err_min = 1.7976931348623157e+308; /* … */ __pyx_v_uy_min = 0.0; __pyx_v_ux_min = 0.0; __pyx_v_err_min = 1.7976931348623157e+308;
+0572: cdef double dsw_y = 2.0 * sw_y / (wsize - 1), dsw_x = 2.0 * sw_x / (wsize - 1)
__pyx_v_dsw_y = ((2.0 * __pyx_v_sw_y) / ((double)(__pyx_v_wsize - 1))); __pyx_v_dsw_x = ((2.0 * __pyx_v_sw_x) / ((double)(__pyx_v_wsize - 1))); /* … */ __pyx_v_dsw_y = ((2.0 * __pyx_v_sw_y) / ((double)(__pyx_v_wsize - 1))); __pyx_v_dsw_x = ((2.0 * __pyx_v_sw_x) / ((double)(__pyx_v_wsize - 1))); /* … */ __pyx_v_dsw_y = ((2.0 * __pyx_v_sw_y) / ((double)(__pyx_v_wsize - 1))); __pyx_v_dsw_x = ((2.0 * __pyx_v_sw_x) / ((double)(__pyx_v_wsize - 1))); /* … */ __pyx_v_dsw_y = ((2.0 * __pyx_v_sw_y) / ((double)(__pyx_v_wsize - 1))); __pyx_v_dsw_x = ((2.0 * __pyx_v_sw_x) / ((double)(__pyx_v_wsize - 1)));
0573: cdef int ii, jj
0574:
+0575: err0 = FVU_interp(I_n, W[j, k], I0, di, dj, j, k, u[0, j, k],
__pyx_t_1 = __pyx_v_j; __pyx_t_2 = __pyx_v_k; __pyx_t_3 = 0; __pyx_t_4 = __pyx_v_j; __pyx_t_5 = __pyx_v_k; /* … */ __pyx_v_err0 = __pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_1 * __pyx_v_W.strides[0]) )) + __pyx_t_2)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_4 * __pyx_v_u.strides[1]) )) + __pyx_t_5)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_8)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f); /* … */ __pyx_t_1 = __pyx_v_j; __pyx_t_2 = __pyx_v_k; __pyx_t_3 = 0; __pyx_t_4 = __pyx_v_j; __pyx_t_5 = __pyx_v_k; /* … */ __pyx_v_err0 = __pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_1 * __pyx_v_W.strides[0]) )) + __pyx_t_2)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_4 * __pyx_v_u.strides[1]) )) + __pyx_t_5)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_8)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f); /* … */ __pyx_t_1 = __pyx_v_j; __pyx_t_2 = __pyx_v_k; __pyx_t_3 = 0; __pyx_t_4 = __pyx_v_j; __pyx_t_5 = __pyx_v_k; /* … */ __pyx_v_err0 = __pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_1 * __pyx_v_W.strides[0]) )) + __pyx_t_2)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_4 * __pyx_v_u.strides[1]) )) + __pyx_t_5)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_8)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f); /* … */ __pyx_t_1 = __pyx_v_j; __pyx_t_2 = __pyx_v_k; __pyx_t_3 = 0; __pyx_t_4 = __pyx_v_j; __pyx_t_5 = __pyx_v_k; /* … */ __pyx_v_err0 = __pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_1 * __pyx_v_W.strides[0]) )) + __pyx_t_2)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_4 * __pyx_v_u.strides[1]) )) + __pyx_t_5)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_8)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
+0576: u[1, j, k], ds_y, ds_x, sigma, f)
__pyx_t_6 = 1; __pyx_t_7 = __pyx_v_j; __pyx_t_8 = __pyx_v_k; /* … */ __pyx_t_6 = 1; __pyx_t_7 = __pyx_v_j; __pyx_t_8 = __pyx_v_k; /* … */ __pyx_t_6 = 1; __pyx_t_7 = __pyx_v_j; __pyx_t_8 = __pyx_v_k; /* … */ __pyx_t_6 = 1; __pyx_t_7 = __pyx_v_j; __pyx_t_8 = __pyx_v_k;
0577:
+0578: for ii in range(<int>wsize if dsw_y > 0.0 else 1):
if (((__pyx_v_dsw_y > 0.0) != 0)) {
__pyx_t_9 = ((int)__pyx_v_wsize);
} else {
__pyx_t_9 = 1;
}
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_ii = __pyx_t_11;
/* … */
if (((__pyx_v_dsw_y > 0.0) != 0)) {
__pyx_t_9 = ((int)__pyx_v_wsize);
} else {
__pyx_t_9 = 1;
}
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_ii = __pyx_t_11;
/* … */
if (((__pyx_v_dsw_y > 0.0) != 0)) {
__pyx_t_9 = ((int)__pyx_v_wsize);
} else {
__pyx_t_9 = 1;
}
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_ii = __pyx_t_11;
/* … */
if (((__pyx_v_dsw_y > 0.0) != 0)) {
__pyx_t_9 = ((int)__pyx_v_wsize);
} else {
__pyx_t_9 = 1;
}
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_ii = __pyx_t_11;
+0579: uy = dsw_y * (ii - 0.5 * (wsize - 1))
__pyx_v_uy = (__pyx_v_dsw_y * (__pyx_v_ii - (0.5 * (__pyx_v_wsize - 1))));
/* … */
__pyx_v_uy = (__pyx_v_dsw_y * (__pyx_v_ii - (0.5 * (__pyx_v_wsize - 1))));
/* … */
__pyx_v_uy = (__pyx_v_dsw_y * (__pyx_v_ii - (0.5 * (__pyx_v_wsize - 1))));
/* … */
__pyx_v_uy = (__pyx_v_dsw_y * (__pyx_v_ii - (0.5 * (__pyx_v_wsize - 1))));
+0580: for jj in range(<int>wsize if dsw_x > 0.0 else 1):
if (((__pyx_v_dsw_x > 0.0) != 0)) {
__pyx_t_12 = ((int)__pyx_v_wsize);
} else {
__pyx_t_12 = 1;
}
__pyx_t_13 = __pyx_t_12;
for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
__pyx_v_jj = __pyx_t_14;
/* … */
if (((__pyx_v_dsw_x > 0.0) != 0)) {
__pyx_t_12 = ((int)__pyx_v_wsize);
} else {
__pyx_t_12 = 1;
}
__pyx_t_13 = __pyx_t_12;
for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
__pyx_v_jj = __pyx_t_14;
/* … */
if (((__pyx_v_dsw_x > 0.0) != 0)) {
__pyx_t_12 = ((int)__pyx_v_wsize);
} else {
__pyx_t_12 = 1;
}
__pyx_t_13 = __pyx_t_12;
for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
__pyx_v_jj = __pyx_t_14;
/* … */
if (((__pyx_v_dsw_x > 0.0) != 0)) {
__pyx_t_12 = ((int)__pyx_v_wsize);
} else {
__pyx_t_12 = 1;
}
__pyx_t_13 = __pyx_t_12;
for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
__pyx_v_jj = __pyx_t_14;
+0581: ux = dsw_x * (jj - 0.5 * (wsize - 1))
__pyx_v_ux = (__pyx_v_dsw_x * (__pyx_v_jj - (0.5 * (__pyx_v_wsize - 1))));
/* … */
__pyx_v_ux = (__pyx_v_dsw_x * (__pyx_v_jj - (0.5 * (__pyx_v_wsize - 1))));
/* … */
__pyx_v_ux = (__pyx_v_dsw_x * (__pyx_v_jj - (0.5 * (__pyx_v_wsize - 1))));
/* … */
__pyx_v_ux = (__pyx_v_dsw_x * (__pyx_v_jj - (0.5 * (__pyx_v_wsize - 1))));
+0582: err = FVU_interp(I_n, W[j, k], I0, di, dj, j, k, u[0, j, k] + uy,
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_j;
__pyx_t_4 = __pyx_v_k;
/* … */
__pyx_v_err = __pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_8 * __pyx_v_W.strides[0]) )) + __pyx_t_7)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_5 * __pyx_v_u.strides[1]) )) + __pyx_t_4)) ))) + __pyx_v_uy), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_1)) ))) + __pyx_v_ux), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_j;
__pyx_t_4 = __pyx_v_k;
/* … */
__pyx_v_err = __pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_8 * __pyx_v_W.strides[0]) )) + __pyx_t_7)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_5 * __pyx_v_u.strides[1]) )) + __pyx_t_4)) ))) + __pyx_v_uy), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_1)) ))) + __pyx_v_ux), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_j;
__pyx_t_4 = __pyx_v_k;
/* … */
__pyx_v_err = __pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_8 * __pyx_v_W.strides[0]) )) + __pyx_t_7)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_5 * __pyx_v_u.strides[1]) )) + __pyx_t_4)) ))) + __pyx_v_uy), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_1)) ))) + __pyx_v_ux), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_j;
__pyx_t_4 = __pyx_v_k;
/* … */
__pyx_v_err = __pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_8 * __pyx_v_W.strides[0]) )) + __pyx_t_7)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_5 * __pyx_v_u.strides[1]) )) + __pyx_t_4)) ))) + __pyx_v_uy), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_1)) ))) + __pyx_v_ux), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
+0583: u[1, j, k] + ux, ds_y, ds_x, sigma, f)
__pyx_t_3 = 1;
__pyx_t_2 = __pyx_v_j;
__pyx_t_1 = __pyx_v_k;
/* … */
__pyx_t_3 = 1;
__pyx_t_2 = __pyx_v_j;
__pyx_t_1 = __pyx_v_k;
/* … */
__pyx_t_3 = 1;
__pyx_t_2 = __pyx_v_j;
__pyx_t_1 = __pyx_v_k;
/* … */
__pyx_t_3 = 1;
__pyx_t_2 = __pyx_v_j;
__pyx_t_1 = __pyx_v_k;
0584:
+0585: if err < err_min:
__pyx_t_15 = ((__pyx_v_err < __pyx_v_err_min) != 0);
if (__pyx_t_15) {
/* … */
}
}
}
/* … */
__pyx_t_15 = ((__pyx_v_err < __pyx_v_err_min) != 0);
if (__pyx_t_15) {
/* … */
}
}
}
/* … */
__pyx_t_15 = ((__pyx_v_err < __pyx_v_err_min) != 0);
if (__pyx_t_15) {
/* … */
}
}
}
/* … */
__pyx_t_15 = ((__pyx_v_err < __pyx_v_err_min) != 0);
if (__pyx_t_15) {
/* … */
}
}
}
+0586: uy_min = uy; ux_min = ux; err_min = err
__pyx_v_uy_min = __pyx_v_uy;
__pyx_v_ux_min = __pyx_v_ux;
__pyx_v_err_min = __pyx_v_err;
/* … */
__pyx_v_uy_min = __pyx_v_uy;
__pyx_v_ux_min = __pyx_v_ux;
__pyx_v_err_min = __pyx_v_err;
/* … */
__pyx_v_uy_min = __pyx_v_uy;
__pyx_v_ux_min = __pyx_v_ux;
__pyx_v_err_min = __pyx_v_err;
/* … */
__pyx_v_uy_min = __pyx_v_uy;
__pyx_v_ux_min = __pyx_v_ux;
__pyx_v_err_min = __pyx_v_err;
0587:
+0588: u[0, j, k] += uy_min; u[1, j, k] += ux_min
__pyx_t_1 = 0; __pyx_t_2 = __pyx_v_j; __pyx_t_3 = __pyx_v_k; *((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_1 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_3)) )) += __pyx_v_uy_min; __pyx_t_3 = 1; __pyx_t_2 = __pyx_v_j; __pyx_t_1 = __pyx_v_k; *((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_1)) )) += __pyx_v_ux_min; /* … */ __pyx_t_1 = 0; __pyx_t_2 = __pyx_v_j; __pyx_t_3 = __pyx_v_k; *((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_1 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_3)) )) += __pyx_v_uy_min; __pyx_t_3 = 1; __pyx_t_2 = __pyx_v_j; __pyx_t_1 = __pyx_v_k; *((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_1)) )) += __pyx_v_ux_min; /* … */ __pyx_t_1 = 0; __pyx_t_2 = __pyx_v_j; __pyx_t_3 = __pyx_v_k; *((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_1 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_3)) )) += __pyx_v_uy_min; __pyx_t_3 = 1; __pyx_t_2 = __pyx_v_j; __pyx_t_1 = __pyx_v_k; *((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_1)) )) += __pyx_v_ux_min; /* … */ __pyx_t_1 = 0; __pyx_t_2 = __pyx_v_j; __pyx_t_3 = __pyx_v_k; *((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_1 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_3)) )) += __pyx_v_uy_min; __pyx_t_3 = 1; __pyx_t_2 = __pyx_v_j; __pyx_t_1 = __pyx_v_k; *((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_1)) )) += __pyx_v_ux_min;
+0589: derrs[j, k] = err0 - err_min if err_min < err0 else 0.0
if (((__pyx_v_err_min < __pyx_v_err0) != 0)) {
__pyx_t_16 = (__pyx_v_err0 - __pyx_v_err_min);
} else {
__pyx_t_16 = 0.0;
}
__pyx_t_1 = __pyx_v_j;
__pyx_t_2 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_derrs.data + __pyx_t_1 * __pyx_v_derrs.strides[0]) )) + __pyx_t_2)) )) = __pyx_t_16;
/* … */
if (((__pyx_v_err_min < __pyx_v_err0) != 0)) {
__pyx_t_16 = (__pyx_v_err0 - __pyx_v_err_min);
} else {
__pyx_t_16 = 0.0;
}
__pyx_t_1 = __pyx_v_j;
__pyx_t_2 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_derrs.data + __pyx_t_1 * __pyx_v_derrs.strides[0]) )) + __pyx_t_2)) )) = __pyx_t_16;
/* … */
if (((__pyx_v_err_min < __pyx_v_err0) != 0)) {
__pyx_t_16 = (__pyx_v_err0 - __pyx_v_err_min);
} else {
__pyx_t_16 = 0.0;
}
__pyx_t_1 = __pyx_v_j;
__pyx_t_2 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_derrs.data + __pyx_t_1 * __pyx_v_derrs.strides[0]) )) + __pyx_t_2)) )) = __pyx_t_16;
/* … */
if (((__pyx_v_err_min < __pyx_v_err0) != 0)) {
__pyx_t_16 = (__pyx_v_err0 - __pyx_v_err_min);
} else {
__pyx_t_16 = 0.0;
}
__pyx_t_1 = __pyx_v_j;
__pyx_t_2 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_derrs.data + __pyx_t_1 * __pyx_v_derrs.strides[0]) )) + __pyx_t_2)) )) = __pyx_t_16;
0590:
+0591: def pm_gsearch(uint_t[:, :, ::1] I_n not None, float_t[:, ::1] W not None, float_t[:, ::1] I0 not None,
/* Python wrapper */
static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_5pm_gsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6pyrost_3bin_6pyrost_4pm_gsearch[] = "Update the pixel mapping by minimizing mean-squared-error\n (MSE). Perform a grid search within the search window of `sw_y`,\n `sw_x` size along the vertical and fast axes accordingly in order to\n minimize the MSE at each point of the detector grid separately.\n\n Args:\n I_n (numpy.ndarray) : Measured intensity frames.\n W (numpy.ndarray) : Measured frames' whitefield.\n I0 (numpy.ndarray) : Reference image of the sample.\n u (numpy.ndarray) : The discrete geometrical mapping of the detector\n plane to the reference image.\n di (numpy.ndarray) : Initial sample's translations along the vertical\n detector axis in pixels.\n dj (numpy.ndarray) : Initial sample's translations along the horizontal\n detector axis in pixels.\n sw_y (float) : Search window size in pixels along the vertical detector\n axis.\n sw_x (float) : Search window size in pixels along the horizontal detector\n axis.\n grid_size (int) : Grid size along one of the detector axes. The grid\n shape is then (grid_size, grid_size).\n ds_y (float) : Sampling interval of reference image in pixels along the\n vertical axis.\n ds_x (float) : Sampling interval of reference image in pixels along the\n horizontal axis.\n sigma (float) : The standard deviation of `I_n`.\n loss (str) : Choose between the following loss functions:\n\n * 'Epsilon': Epsilon loss function (epsilon = 0.5)\n * 'Huber' : Huber loss function (k = 1.345)\n * 'L1' : L1 norm loss function.\n * 'L2' : L2 norm loss function.\n\n num_threads (int) : Number of threads.\n\n Returns:\n Tuple[numpy.ndarray, numpy.ndarray] : A tuple of two elements ('u', 'derr').\n The elements are the following:\n\n * 'u' : Updated pixel mapping array.\n * 'derr' : Error decrease for each pixel i""n the detector grid.\n\n Notes:\n The error metric as a function of pixel mapping displacements\n is given by:\n\n .. math::\n\n \\varepsilon_{pm}[i, j, i^{\\prime}, j^{\\prime}] = \\frac{1}{N}\n \\sum_{n = 0}^N f\\left( \\frac{I[n, i, j] - W[i, j]\n I_{ref}[u[0, i, j] + i^{\\prime} - di[n],\n u[1, i, j] + j^{\\prime} - dj[n]]}{\\sigma} \\right)\n\n where :math:`f(x)` is L1 norm, L2 norm or Huber loss function.\n ";
static PyMethodDef __pyx_mdef_6pyrost_3bin_6pyrost_5pm_gsearch = {"pm_gsearch", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pyrost_3bin_6pyrost_5pm_gsearch, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_4pm_gsearch};
static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_5pm_gsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_signatures = 0;
PyObject *__pyx_v_args = 0;
PyObject *__pyx_v_kwargs = 0;
CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
PyObject* values[4] = {0,0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 591, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 591, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
}
__pyx_v_signatures = values[0];
__pyx_v_args = values[1];
__pyx_v_kwargs = values[2];
__pyx_v_defaults = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 591, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_4pm_gsearch(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_4pm_gsearch(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
PyObject *__pyx_v_dest_sig = NULL;
Py_ssize_t __pyx_v_i;
PyTypeObject *__pyx_v_ndarray = 0;
__Pyx_memviewslice __pyx_v_memslice;
Py_ssize_t __pyx_v_itemsize;
int __pyx_v_dtype_signed;
char __pyx_v_kind;
int __pyx_v____pyx_uint64_t_is_signed;
int __pyx_v____pyx_uint32_t_is_signed;
PyObject *__pyx_v_arg = NULL;
PyObject *__pyx_v_dtype = NULL;
PyObject *__pyx_v_arg_base = NULL;
PyObject *__pyx_v_candidates = NULL;
PyObject *__pyx_v_sig = NULL;
int __pyx_v_match_found;
PyObject *__pyx_v_src_sig = NULL;
PyObject *__pyx_v_dst_type = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pm_gsearch", 0);
__Pyx_INCREF(__pyx_v_kwargs);
__pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{ Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
}
}
__pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_3 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 591, __pyx_L1_error)
__pyx_t_3 = ((!__pyx_t_4) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L4_bool_binop_done:;
if (__pyx_t_2) {
__Pyx_INCREF(Py_None);
__Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
}
__pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_v_itemsize = -1L;
__pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
__pyx_v____pyx_uint32_t_is_signed = (!((((__pyx_t_5numpy_uint32_t)-1L) > 0) != 0));
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 591, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 591, __pyx_L1_error)
__pyx_t_2 = ((0 < __pyx_t_5) != 0);
if (__pyx_t_2) {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 591, __pyx_L1_error)
}
__pyx_t_1 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 0);
__Pyx_INCREF(__pyx_t_1);
__pyx_v_arg = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L6;
}
__pyx_t_3 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L7_bool_binop_done;
}
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 591, __pyx_L1_error)
}
__pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_I_n, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 591, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_4 != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L7_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 591, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_I_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_arg = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L6;
}
/*else*/ {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 591, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 591, __pyx_L1_error)
__pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_INCREF(__pyx_int_12);
__Pyx_GIVEREF(__pyx_int_12);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_12);
__Pyx_INCREF(__pyx_n_s_s);
__Pyx_GIVEREF(__pyx_n_s_s);
PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_Raise(__pyx_t_6, 0, 0, 0);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__PYX_ERR(0, 591, __pyx_L1_error)
}
__pyx_L6:;
while (1) {
__pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_dtype = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L12;
}
__pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_arg_base = __pyx_t_6;
__pyx_t_6 = 0;
__pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_dtype = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L13;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__pyx_v_dtype = Py_None;
}
__pyx_L13:;
goto __pyx_L12;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__pyx_v_dtype = Py_None;
}
__pyx_L12:;
__pyx_v_itemsize = -1L;
__pyx_t_2 = (__pyx_v_dtype != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_itemsize = __pyx_t_5;
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_kind = __pyx_t_7;
__pyx_v_dtype_signed = (__pyx_v_kind == 'i');
switch (__pyx_v_kind) {
case 'i':
case 'u':
__pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L16_bool_binop_done;
}
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L16_bool_binop_done;
}
__pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L16_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 591, __pyx_L1_error)
goto __pyx_L10_break;
}
__pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint32_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L20_bool_binop_done;
}
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L20_bool_binop_done;
}
__pyx_t_2 = ((!((__pyx_v____pyx_uint32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L20_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 591, __pyx_L1_error)
goto __pyx_L10_break;
}
break;
case 'f':
break;
case 'c':
break;
case 'O':
break;
default: break;
}
}
}
__pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L24_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L24_bool_binop_done:;
if (__pyx_t_3) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_3 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_3) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 591, __pyx_L1_error)
goto __pyx_L10_break;
}
/*else*/ {
PyErr_Clear();
}
}
__pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L28_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint32_t))) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L28_bool_binop_done:;
if (__pyx_t_3) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_3 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_3) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 591, __pyx_L1_error)
goto __pyx_L10_break;
}
/*else*/ {
PyErr_Clear();
}
}
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 591, __pyx_L1_error)
goto __pyx_L10_break;
}
__pyx_L10_break:;
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 591, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 591, __pyx_L1_error)
__pyx_t_3 = ((1 < __pyx_t_5) != 0);
if (__pyx_t_3) {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 591, __pyx_L1_error)
}
__pyx_t_6 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 1);
__Pyx_INCREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
__pyx_t_6 = 0;
goto __pyx_L31;
}
__pyx_t_2 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_2 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_3 = __pyx_t_4;
goto __pyx_L32_bool_binop_done;
}
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 591, __pyx_L1_error)
}
__pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_W, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 591, __pyx_L1_error)
__pyx_t_2 = (__pyx_t_4 != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L32_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 591, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_W); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
__pyx_t_6 = 0;
goto __pyx_L31;
}
/*else*/ {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 591, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 591, __pyx_L1_error)
__pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_int_12);
__Pyx_GIVEREF(__pyx_int_12);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_12);
__Pyx_INCREF(__pyx_n_s_s);
__Pyx_GIVEREF(__pyx_n_s_s);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 591, __pyx_L1_error)
}
__pyx_L31:;
while (1) {
__pyx_t_3 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
__pyx_t_1 = 0;
goto __pyx_L37;
}
__pyx_t_3 = __pyx_memoryview_check(__pyx_v_arg);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_arg_base, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
__pyx_t_1 = 0;
goto __pyx_L38;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
}
__pyx_L38:;
goto __pyx_L37;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
}
__pyx_L37:;
__pyx_v_itemsize = -1L;
__pyx_t_3 = (__pyx_v_dtype != Py_None);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_itemsize = __pyx_t_5;
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_1); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_kind = __pyx_t_7;
__pyx_v_dtype_signed = (__pyx_v_kind == 'i');
switch (__pyx_v_kind) {
case 'i':
case 'u':
break;
case 'f':
__pyx_t_3 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L41_bool_binop_done;
}
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 2) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L41_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 591, __pyx_L1_error)
goto __pyx_L35_break;
}
__pyx_t_3 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L44_bool_binop_done;
}
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 2) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L44_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 591, __pyx_L1_error)
goto __pyx_L35_break;
}
break;
case 'c':
break;
case 'O':
break;
default: break;
}
}
}
__pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L47_bool_binop_done;
}
__pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L47_bool_binop_done:;
if (__pyx_t_2) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_2 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_2) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 591, __pyx_L1_error)
goto __pyx_L35_break;
}
/*else*/ {
PyErr_Clear();
}
}
__pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L51_bool_binop_done;
}
__pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L51_bool_binop_done:;
if (__pyx_t_2) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_2 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_2) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 591, __pyx_L1_error)
goto __pyx_L35_break;
}
/*else*/ {
PyErr_Clear();
}
}
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 591, __pyx_L1_error)
goto __pyx_L35_break;
}
__pyx_L35_break:;
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_candidates = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_5 = 0;
if (unlikely(__pyx_v_signatures == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 591, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_9, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_10);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_v_match_found = 0;
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_14 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
__pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
if (likely(__pyx_t_14)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
__Pyx_INCREF(__pyx_t_14);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_13, function);
}
}
__pyx_t_12 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2);
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
__pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
if (likely(__pyx_t_12)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
__Pyx_INCREF(__pyx_t_12);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_13, function);
}
}
__pyx_t_6 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__3);
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_15 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 591, __pyx_L1_error)
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_i = __pyx_t_17;
__pyx_t_6 = PyList_GET_ITEM(__pyx_v_dest_sig, __pyx_v_i);
__Pyx_INCREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_2 = (__pyx_v_dst_type != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_13 = PyObject_RichCompare(__pyx_t_6, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
if (__pyx_t_3) {
__pyx_v_match_found = 1;
goto __pyx_L59;
}
/*else*/ {
__pyx_v_match_found = 0;
goto __pyx_L57_break;
}
__pyx_L59:;
}
}
__pyx_L57_break:;
__pyx_t_3 = (__pyx_v_match_found != 0);
if (__pyx_t_3) {
__pyx_t_18 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 591, __pyx_L1_error)
}
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
__pyx_t_2 = ((!__pyx_t_3) != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 591, __pyx_L1_error)
}
__pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 591, __pyx_L1_error)
__pyx_t_2 = ((__pyx_t_9 > 1) != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 591, __pyx_L1_error)
}
/*else*/ {
__Pyx_XDECREF(__pyx_r);
if (unlikely(__pyx_v_signatures == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 591, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), PyList_GET_ITEM(__pyx_v_candidates, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_AddTraceback("pyrost.bin.pyrost.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_dest_sig);
__Pyx_XDECREF(__pyx_v_ndarray);
__Pyx_XDECREF(__pyx_v_arg);
__Pyx_XDECREF(__pyx_v_dtype);
__Pyx_XDECREF(__pyx_v_arg_base);
__Pyx_XDECREF(__pyx_v_candidates);
__Pyx_XDECREF(__pyx_v_sig);
__Pyx_XDECREF(__pyx_v_src_sig);
__Pyx_XDECREF(__pyx_v_dst_type);
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_168__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults20, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults20, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults20, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults20, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_43pm_gsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_6pyrost_3bin_6pyrost_43pm_gsearch = {"__pyx_fuse_0_0pm_gsearch", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_43pm_gsearch, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_4pm_gsearch};
static PyObject *__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_43pm_gsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_sw_y;
double __pyx_v_sw_x;
unsigned int __pyx_v_grid_size;
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
CYTHON_UNUSED unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pm_gsearch (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u0,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_sw_y,&__pyx_n_s_sw_x,&__pyx_n_s_grid_size,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults20 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults20, __pyx_self);
values[12] = __pyx_dynamic_args->__pyx_arg_loss;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 1); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 2); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 3); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 4); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 5); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 6); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 7); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grid_size)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 8); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 9); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 10:
if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 10); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 11:
if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 11); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 12:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[12] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 13:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[13] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pm_gsearch") < 0)) __PYX_ERR(0, 591, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 591, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 591, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 591, __pyx_L3_error)
__pyx_v_u0 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u0.memview)) __PYX_ERR(0, 592, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 592, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 592, __pyx_L3_error)
__pyx_v_sw_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_sw_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L3_error)
__pyx_v_sw_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_sw_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L3_error)
__pyx_v_grid_size = __Pyx_PyInt_As_unsigned_int(values[8]); if (unlikely((__pyx_v_grid_size == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[10]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[11]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[12]);
if (values[13]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[13]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 594, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 591, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_gsearch", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 591, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 591, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 591, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u0"); __PYX_ERR(0, 592, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 592, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 592, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 594, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_42pm_gsearch(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u0, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_grid_size, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_42pm_gsearch(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u0, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_grid_size, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, PyObject *__pyx_v_loss, CYTHON_UNUSED unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_j;
int __pyx_v_k;
npy_intp *__pyx_v_u_shape;
PyArrayObject *__pyx_v_u = 0;
PyArrayObject *__pyx_v_derr = 0;
__Pyx_memviewslice __pyx_v__u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v__derr = { 0, 0, { 0 }, { 0 }, { 0 } };
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_0_0pm_gsearch", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_7, 1);
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_gsearch", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_u);
__Pyx_XDECREF((PyObject *)__pyx_v_derr);
__PYX_XDEC_MEMVIEW(&__pyx_v__u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v__derr, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_170__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults21, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults21, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults21, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults21, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_45pm_gsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_6pyrost_3bin_6pyrost_45pm_gsearch = {"__pyx_fuse_0_1pm_gsearch", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_45pm_gsearch, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_4pm_gsearch};
static PyObject *__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_45pm_gsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_sw_y;
double __pyx_v_sw_x;
unsigned int __pyx_v_grid_size;
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
CYTHON_UNUSED unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pm_gsearch (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u0,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_sw_y,&__pyx_n_s_sw_x,&__pyx_n_s_grid_size,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults21 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults21, __pyx_self);
values[12] = __pyx_dynamic_args->__pyx_arg_loss;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 1); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 2); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 3); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 4); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 5); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 6); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 7); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grid_size)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 8); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 9); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 10:
if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 10); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 11:
if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 11); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 12:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[12] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 13:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[13] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pm_gsearch") < 0)) __PYX_ERR(0, 591, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 591, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 591, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 591, __pyx_L3_error)
__pyx_v_u0 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u0.memview)) __PYX_ERR(0, 592, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 592, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 592, __pyx_L3_error)
__pyx_v_sw_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_sw_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L3_error)
__pyx_v_sw_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_sw_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L3_error)
__pyx_v_grid_size = __Pyx_PyInt_As_unsigned_int(values[8]); if (unlikely((__pyx_v_grid_size == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[10]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[11]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[12]);
if (values[13]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[13]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 594, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 591, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_gsearch", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 591, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 591, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 591, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u0"); __PYX_ERR(0, 592, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 592, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 592, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 594, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_44pm_gsearch(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u0, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_grid_size, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_44pm_gsearch(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u0, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_grid_size, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, PyObject *__pyx_v_loss, CYTHON_UNUSED unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_j;
int __pyx_v_k;
npy_intp *__pyx_v_u_shape;
PyArrayObject *__pyx_v_u = 0;
PyArrayObject *__pyx_v_derr = 0;
__Pyx_memviewslice __pyx_v__u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v__derr = { 0, 0, { 0 }, { 0 }, { 0 } };
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_0_1pm_gsearch", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_7, 1);
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_gsearch", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_u);
__Pyx_XDECREF((PyObject *)__pyx_v_derr);
__PYX_XDEC_MEMVIEW(&__pyx_v__u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v__derr, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_172__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults22, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults22, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults22, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults22, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_47pm_gsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_6pyrost_3bin_6pyrost_47pm_gsearch = {"__pyx_fuse_1_0pm_gsearch", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_47pm_gsearch, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_4pm_gsearch};
static PyObject *__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_47pm_gsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_sw_y;
double __pyx_v_sw_x;
unsigned int __pyx_v_grid_size;
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
CYTHON_UNUSED unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pm_gsearch (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u0,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_sw_y,&__pyx_n_s_sw_x,&__pyx_n_s_grid_size,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults22 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults22, __pyx_self);
values[12] = __pyx_dynamic_args->__pyx_arg_loss;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 1); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 2); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 3); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 4); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 5); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 6); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 7); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grid_size)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 8); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 9); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 10:
if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 10); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 11:
if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 11); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 12:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[12] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 13:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[13] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pm_gsearch") < 0)) __PYX_ERR(0, 591, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 591, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 591, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 591, __pyx_L3_error)
__pyx_v_u0 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u0.memview)) __PYX_ERR(0, 592, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 592, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 592, __pyx_L3_error)
__pyx_v_sw_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_sw_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L3_error)
__pyx_v_sw_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_sw_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L3_error)
__pyx_v_grid_size = __Pyx_PyInt_As_unsigned_int(values[8]); if (unlikely((__pyx_v_grid_size == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[10]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[11]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[12]);
if (values[13]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[13]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 594, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 591, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_gsearch", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 591, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 591, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 591, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u0"); __PYX_ERR(0, 592, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 592, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 592, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 594, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_46pm_gsearch(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u0, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_grid_size, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_46pm_gsearch(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u0, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_grid_size, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, PyObject *__pyx_v_loss, CYTHON_UNUSED unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_j;
int __pyx_v_k;
npy_intp *__pyx_v_u_shape;
PyArrayObject *__pyx_v_u = 0;
PyArrayObject *__pyx_v_derr = 0;
__Pyx_memviewslice __pyx_v__u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v__derr = { 0, 0, { 0 }, { 0 }, { 0 } };
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_1_0pm_gsearch", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_7, 1);
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_gsearch", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_u);
__Pyx_XDECREF((PyObject *)__pyx_v_derr);
__PYX_XDEC_MEMVIEW(&__pyx_v__u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v__derr, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_174__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults23, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults23, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults23, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults23, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_49pm_gsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_6pyrost_3bin_6pyrost_49pm_gsearch = {"__pyx_fuse_1_1pm_gsearch", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_49pm_gsearch, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_4pm_gsearch};
static PyObject *__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_49pm_gsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_sw_y;
double __pyx_v_sw_x;
unsigned int __pyx_v_grid_size;
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
CYTHON_UNUSED unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pm_gsearch (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u0,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_sw_y,&__pyx_n_s_sw_x,&__pyx_n_s_grid_size,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults23 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults23, __pyx_self);
values[12] = __pyx_dynamic_args->__pyx_arg_loss;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 1); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 2); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 3); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 4); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 5); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 6); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 7); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grid_size)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 8); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 9); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 10:
if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 10); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 11:
if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, 11); __PYX_ERR(0, 591, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 12:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[12] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 13:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[13] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pm_gsearch") < 0)) __PYX_ERR(0, 591, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 591, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 591, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 591, __pyx_L3_error)
__pyx_v_u0 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u0.memview)) __PYX_ERR(0, 592, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 592, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 592, __pyx_L3_error)
__pyx_v_sw_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_sw_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L3_error)
__pyx_v_sw_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_sw_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L3_error)
__pyx_v_grid_size = __Pyx_PyInt_As_unsigned_int(values[8]); if (unlikely((__pyx_v_grid_size == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[10]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[11]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[12]);
if (values[13]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[13]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 594, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("pm_gsearch", 0, 12, 14, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 591, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_gsearch", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 591, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 591, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 591, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u0"); __PYX_ERR(0, 592, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 592, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 592, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 594, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_48pm_gsearch(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u0, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_grid_size, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_48pm_gsearch(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u0, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_grid_size, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, PyObject *__pyx_v_loss, CYTHON_UNUSED unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_j;
int __pyx_v_k;
npy_intp *__pyx_v_u_shape;
PyArrayObject *__pyx_v_u = 0;
PyArrayObject *__pyx_v_derr = 0;
__Pyx_memviewslice __pyx_v__u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v__derr = { 0, 0, { 0 }, { 0 }, { 0 } };
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_1_1pm_gsearch", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_7, 1);
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_gsearch", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_u);
__Pyx_XDECREF((PyObject *)__pyx_v_derr);
__PYX_XDEC_MEMVIEW(&__pyx_v__u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v__derr, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_GIVEREF(__pyx_n_u_Huber);
PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_n_u_Huber);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
__pyx_t_1 = 0;
/* … */
__pyx_tuple__37 = PyTuple_Pack(25, __pyx_n_s_I_n, __pyx_n_s_W, __pyx_n_s_I0, __pyx_n_s_u0, __pyx_n_s_di, __pyx_n_s_dj, __pyx_n_s_sw_y, __pyx_n_s_sw_x, __pyx_n_s_grid_size, __pyx_n_s_ds_y, __pyx_n_s_ds_x, __pyx_n_s_sigma, __pyx_n_s_loss, __pyx_n_s_num_threads, __pyx_n_s_f, __pyx_n_s_type_num, __pyx_n_s_Y, __pyx_n_s_X, __pyx_n_s_j, __pyx_n_s_k, __pyx_n_s_u_shape, __pyx_n_s_u, __pyx_n_s_derr, __pyx_n_s_u_2, __pyx_n_s_derr_2); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__37);
__Pyx_GIVEREF(__pyx_tuple__37);
__pyx_t_1 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __pyx_FusedFunction_New(&__pyx_fuse_0_0__pyx_mdef_6pyrost_3bin_6pyrost_43pm_gsearch, 0, __pyx_n_s_pm_gsearch, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__38)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_2, sizeof(__pyx_defaults20), 1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults20, __pyx_t_2)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults20, __pyx_t_2)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_2, __pyx_pf_6pyrost_3bin_6pyrost_168__defaults__);
if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint64_t_float64_t, __pyx_t_2) < 0) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __pyx_FusedFunction_New(&__pyx_fuse_0_1__pyx_mdef_6pyrost_3bin_6pyrost_45pm_gsearch, 0, __pyx_n_s_pm_gsearch, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__38)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_2, sizeof(__pyx_defaults21), 1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults21, __pyx_t_2)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults21, __pyx_t_2)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_2, __pyx_pf_6pyrost_3bin_6pyrost_170__defaults__);
if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint64_t_float32_t, __pyx_t_2) < 0) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __pyx_FusedFunction_New(&__pyx_fuse_1_0__pyx_mdef_6pyrost_3bin_6pyrost_47pm_gsearch, 0, __pyx_n_s_pm_gsearch, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__38)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_2, sizeof(__pyx_defaults22), 1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults22, __pyx_t_2)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults22, __pyx_t_2)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_2, __pyx_pf_6pyrost_3bin_6pyrost_172__defaults__);
if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint32_t_float64_t, __pyx_t_2) < 0) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __pyx_FusedFunction_New(&__pyx_fuse_1_1__pyx_mdef_6pyrost_3bin_6pyrost_49pm_gsearch, 0, __pyx_n_s_pm_gsearch, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__38)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_2, sizeof(__pyx_defaults23), 1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults23, __pyx_t_2)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults23, __pyx_t_2)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_2, __pyx_pf_6pyrost_3bin_6pyrost_174__defaults__);
if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint32_t_float32_t, __pyx_t_2) < 0) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __pyx_FusedFunction_New(&__pyx_mdef_6pyrost_3bin_6pyrost_5pm_gsearch, 0, __pyx_n_s_pm_gsearch, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__38)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4);
((__pyx_FusedFunctionObject *) __pyx_t_2)->__signatures__ = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
if (PyDict_SetItem(__pyx_d, __pyx_n_s_pm_gsearch, __pyx_t_2) < 0) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_codeobj__38 = (PyObject*)__Pyx_PyCode_New(14, 0, 25, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pyrost_bin_pyrost_pyx, __pyx_n_s_pm_gsearch, 591, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__38)) __PYX_ERR(0, 591, __pyx_L1_error)
0592: float_t[:, :, ::1] u0 not None, float_t[::1] di not None, float_t[::1] dj not None,
0593: double sw_y, double sw_x, unsigned grid_size, double ds_y, double ds_x, double sigma,
+0594: str loss='Huber', unsigned num_threads=1):
__pyx_t_1 = __Pyx_PyInt_From_long(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
0595: r"""Update the pixel mapping by minimizing mean-squared-error
0596: (MSE). Perform a grid search within the search window of `sw_y`,
0597: `sw_x` size along the vertical and fast axes accordingly in order to
0598: minimize the MSE at each point of the detector grid separately.
0599:
0600: Args:
0601: I_n (numpy.ndarray) : Measured intensity frames.
0602: W (numpy.ndarray) : Measured frames' whitefield.
0603: I0 (numpy.ndarray) : Reference image of the sample.
0604: u (numpy.ndarray) : The discrete geometrical mapping of the detector
0605: plane to the reference image.
0606: di (numpy.ndarray) : Initial sample's translations along the vertical
0607: detector axis in pixels.
0608: dj (numpy.ndarray) : Initial sample's translations along the horizontal
0609: detector axis in pixels.
0610: sw_y (float) : Search window size in pixels along the vertical detector
0611: axis.
0612: sw_x (float) : Search window size in pixels along the horizontal detector
0613: axis.
0614: grid_size (int) : Grid size along one of the detector axes. The grid
0615: shape is then (grid_size, grid_size).
0616: ds_y (float) : Sampling interval of reference image in pixels along the
0617: vertical axis.
0618: ds_x (float) : Sampling interval of reference image in pixels along the
0619: horizontal axis.
0620: sigma (float) : The standard deviation of `I_n`.
0621: loss (str) : Choose between the following loss functions:
0622:
0623: * 'Epsilon': Epsilon loss function (epsilon = 0.5)
0624: * 'Huber' : Huber loss function (k = 1.345)
0625: * 'L1' : L1 norm loss function.
0626: * 'L2' : L2 norm loss function.
0627:
0628: num_threads (int) : Number of threads.
0629:
0630: Returns:
0631: Tuple[numpy.ndarray, numpy.ndarray] : A tuple of two elements ('u', 'derr').
0632: The elements are the following:
0633:
0634: * 'u' : Updated pixel mapping array.
0635: * 'derr' : Error decrease for each pixel in the detector grid.
0636:
0637: Notes:
0638: The error metric as a function of pixel mapping displacements
0639: is given by:
0640:
0641: .. math::
0642:
0643: \varepsilon_{pm}[i, j, i^{\prime}, j^{\prime}] = \frac{1}{N}
0644: \sum_{n = 0}^N f\left( \frac{I[n, i, j] - W[i, j]
0645: I_{ref}[u[0, i, j] + i^{\prime} - di[n],
0646: u[1, i, j] + j^{\prime} - dj[n]]}{\sigma} \right)
0647:
0648: where :math:`f(x)` is L1 norm, L2 norm or Huber loss function.
0649: """
+0650: if ds_y <= 0.0 or ds_x <= 0.0:
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
+0651: raise ValueError('Sampling intervals must be positive')
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 651, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 651, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 651, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 651, __pyx_L1_error)
0652:
+0653: cdef loss_func f = choose_loss(loss)
__pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss); /* … */ __pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss); /* … */ __pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss); /* … */ __pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss);
0654:
+0655: cdef int type_num = np.PyArray_TYPE(W.base)
__pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 655, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 655, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 655, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 655, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0656: cdef int Y = I_n.shape[1], X = I_n.shape[2], j, k
__pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]);
0657:
+0658: cdef np.npy_intp *u_shape = [2, Y, X]
__pyx_t_5[0] = 2; __pyx_t_5[1] = __pyx_v_Y; __pyx_t_5[2] = __pyx_v_X; __pyx_v_u_shape = __pyx_t_5; /* … */ __pyx_t_5[0] = 2; __pyx_t_5[1] = __pyx_v_Y; __pyx_t_5[2] = __pyx_v_X; __pyx_v_u_shape = __pyx_t_5; /* … */ __pyx_t_5[0] = 2; __pyx_t_5[1] = __pyx_v_Y; __pyx_t_5[2] = __pyx_v_X; __pyx_v_u_shape = __pyx_t_5; /* … */ __pyx_t_5[0] = 2; __pyx_t_5[1] = __pyx_v_Y; __pyx_t_5[2] = __pyx_v_X; __pyx_v_u_shape = __pyx_t_5;
+0659: cdef np.ndarray u = np.PyArray_SimpleNew(3, u_shape, type_num)
__pyx_t_4 = PyArray_SimpleNew(3, __pyx_v_u_shape, __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 659, __pyx_L1_error) __pyx_v_u = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_SimpleNew(3, __pyx_v_u_shape, __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 659, __pyx_L1_error) __pyx_v_u = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_SimpleNew(3, __pyx_v_u_shape, __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 659, __pyx_L1_error) __pyx_v_u = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_SimpleNew(3, __pyx_v_u_shape, __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 659, __pyx_L1_error) __pyx_v_u = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0;
+0660: cdef np.ndarray derr = np.PyArray_ZEROS(2, u_shape + 1, type_num, 0)
__pyx_t_4 = PyArray_ZEROS(2, (__pyx_v_u_shape + 1), __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 660, __pyx_L1_error) __pyx_v_derr = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_ZEROS(2, (__pyx_v_u_shape + 1), __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 660, __pyx_L1_error) __pyx_v_derr = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_ZEROS(2, (__pyx_v_u_shape + 1), __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 660, __pyx_L1_error) __pyx_v_derr = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_ZEROS(2, (__pyx_v_u_shape + 1), __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 660, __pyx_L1_error) __pyx_v_derr = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0;
+0661: cdef float_t[:, :, ::1] _u = u
__pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(((PyObject *)__pyx_v_u), PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 661, __pyx_L1_error) __pyx_v__u = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(((PyObject *)__pyx_v_u), PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 661, __pyx_L1_error) __pyx_v__u = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(((PyObject *)__pyx_v_u), PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 661, __pyx_L1_error) __pyx_v__u = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(((PyObject *)__pyx_v_u), PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 661, __pyx_L1_error) __pyx_v__u = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL;
+0662: cdef float_t[:, ::1] _derr = derr
__pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(((PyObject *)__pyx_v_derr), PyBUF_WRITABLE); if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 662, __pyx_L1_error) __pyx_v__derr = __pyx_t_7; __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL; /* … */ __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(((PyObject *)__pyx_v_derr), PyBUF_WRITABLE); if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 662, __pyx_L1_error) __pyx_v__derr = __pyx_t_7; __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL; /* … */ __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(((PyObject *)__pyx_v_derr), PyBUF_WRITABLE); if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 662, __pyx_L1_error) __pyx_v__derr = __pyx_t_7; __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL; /* … */ __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(((PyObject *)__pyx_v_derr), PyBUF_WRITABLE); if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 662, __pyx_L1_error) __pyx_v__derr = __pyx_t_7; __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL;
0663:
+0664: for k in prange(X, schedule='guided', num_threads=num_threads, nogil=True):
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_8 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_10 = (__pyx_t_8 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_10 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_8 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_10 = (__pyx_t_8 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_10 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_10; __pyx_t_9++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_9);
/* Initialize private variables to invalid values */
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_8 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_10 = (__pyx_t_8 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_10 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_8 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_10 = (__pyx_t_8 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_10 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_10; __pyx_t_9++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_9);
/* Initialize private variables to invalid values */
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_8 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_10 = (__pyx_t_8 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_10 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_8 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_10 = (__pyx_t_8 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_10 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_10; __pyx_t_9++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_9);
/* Initialize private variables to invalid values */
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_8 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_10 = (__pyx_t_8 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_10 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_8 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_10 = (__pyx_t_8 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_10 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_10; __pyx_t_9++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_9);
/* Initialize private variables to invalid values */
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
+0665: for j in range(Y):
__pyx_t_11 = __pyx_v_Y;
__pyx_t_12 = __pyx_t_11;
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
__pyx_v_j = __pyx_t_13;
/* … */
__pyx_t_11 = __pyx_v_Y;
__pyx_t_12 = __pyx_t_11;
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
__pyx_v_j = __pyx_t_13;
/* … */
__pyx_t_11 = __pyx_v_Y;
__pyx_t_12 = __pyx_t_11;
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
__pyx_v_j = __pyx_t_13;
/* … */
__pyx_t_11 = __pyx_v_Y;
__pyx_t_12 = __pyx_t_11;
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
__pyx_v_j = __pyx_t_13;
+0666: _u[0, j, k] = u0[0, j, k]; _u[1, j, k] = u0[1, j, k]
__pyx_t_14 = 0;
__pyx_t_15 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = 0;
__pyx_t_18 = __pyx_v_j;
__pyx_t_19 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v__u.data + __pyx_t_17 * __pyx_v__u.strides[0]) ) + __pyx_t_18 * __pyx_v__u.strides[1]) )) + __pyx_t_19)) )) = (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u0.data + __pyx_t_14 * __pyx_v_u0.strides[0]) ) + __pyx_t_15 * __pyx_v_u0.strides[1]) )) + __pyx_t_16)) )));
__pyx_t_16 = 1;
__pyx_t_15 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_t_19 = 1;
__pyx_t_18 = __pyx_v_j;
__pyx_t_17 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v__u.data + __pyx_t_19 * __pyx_v__u.strides[0]) ) + __pyx_t_18 * __pyx_v__u.strides[1]) )) + __pyx_t_17)) )) = (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u0.data + __pyx_t_16 * __pyx_v_u0.strides[0]) ) + __pyx_t_15 * __pyx_v_u0.strides[1]) )) + __pyx_t_14)) )));
/* … */
__pyx_t_14 = 0;
__pyx_t_15 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = 0;
__pyx_t_18 = __pyx_v_j;
__pyx_t_19 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v__u.data + __pyx_t_17 * __pyx_v__u.strides[0]) ) + __pyx_t_18 * __pyx_v__u.strides[1]) )) + __pyx_t_19)) )) = (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u0.data + __pyx_t_14 * __pyx_v_u0.strides[0]) ) + __pyx_t_15 * __pyx_v_u0.strides[1]) )) + __pyx_t_16)) )));
__pyx_t_16 = 1;
__pyx_t_15 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_t_19 = 1;
__pyx_t_18 = __pyx_v_j;
__pyx_t_17 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v__u.data + __pyx_t_19 * __pyx_v__u.strides[0]) ) + __pyx_t_18 * __pyx_v__u.strides[1]) )) + __pyx_t_17)) )) = (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u0.data + __pyx_t_16 * __pyx_v_u0.strides[0]) ) + __pyx_t_15 * __pyx_v_u0.strides[1]) )) + __pyx_t_14)) )));
/* … */
__pyx_t_14 = 0;
__pyx_t_15 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = 0;
__pyx_t_18 = __pyx_v_j;
__pyx_t_19 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v__u.data + __pyx_t_17 * __pyx_v__u.strides[0]) ) + __pyx_t_18 * __pyx_v__u.strides[1]) )) + __pyx_t_19)) )) = (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u0.data + __pyx_t_14 * __pyx_v_u0.strides[0]) ) + __pyx_t_15 * __pyx_v_u0.strides[1]) )) + __pyx_t_16)) )));
__pyx_t_16 = 1;
__pyx_t_15 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_t_19 = 1;
__pyx_t_18 = __pyx_v_j;
__pyx_t_17 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v__u.data + __pyx_t_19 * __pyx_v__u.strides[0]) ) + __pyx_t_18 * __pyx_v__u.strides[1]) )) + __pyx_t_17)) )) = (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u0.data + __pyx_t_16 * __pyx_v_u0.strides[0]) ) + __pyx_t_15 * __pyx_v_u0.strides[1]) )) + __pyx_t_14)) )));
/* … */
__pyx_t_14 = 0;
__pyx_t_15 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = 0;
__pyx_t_18 = __pyx_v_j;
__pyx_t_19 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v__u.data + __pyx_t_17 * __pyx_v__u.strides[0]) ) + __pyx_t_18 * __pyx_v__u.strides[1]) )) + __pyx_t_19)) )) = (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u0.data + __pyx_t_14 * __pyx_v_u0.strides[0]) ) + __pyx_t_15 * __pyx_v_u0.strides[1]) )) + __pyx_t_16)) )));
__pyx_t_16 = 1;
__pyx_t_15 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_t_19 = 1;
__pyx_t_18 = __pyx_v_j;
__pyx_t_17 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v__u.data + __pyx_t_19 * __pyx_v__u.strides[0]) ) + __pyx_t_18 * __pyx_v__u.strides[1]) )) + __pyx_t_17)) )) = (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u0.data + __pyx_t_16 * __pyx_v_u0.strides[0]) ) + __pyx_t_15 * __pyx_v_u0.strides[1]) )) + __pyx_t_14)) )));
+0667: if W[j, k] > 0.0:
__pyx_t_14 = __pyx_v_j;
__pyx_t_15 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_14 * __pyx_v_W.strides[0]) )) + __pyx_t_15)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_14 = __pyx_v_j;
__pyx_t_15 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_14 * __pyx_v_W.strides[0]) )) + __pyx_t_15)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_14 = __pyx_v_j;
__pyx_t_15 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_14 * __pyx_v_W.strides[0]) )) + __pyx_t_15)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_14 = __pyx_v_j;
__pyx_t_15 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_14 * __pyx_v_W.strides[0]) )) + __pyx_t_15)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
+0668: pm_gsearcher(I_n, W, I0, _u, _derr, di, dj, j, k, sw_y, sw_x,
__pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_pm_gsearcher(__pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v__u, __pyx_v__derr, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_grid_size, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_pm_gsearcher(__pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v__u, __pyx_v__derr, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_grid_size, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_pm_gsearcher(__pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v__u, __pyx_v__derr, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_grid_size, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_pm_gsearcher(__pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v__u, __pyx_v__derr, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_grid_size, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
0669: grid_size, ds_y, ds_x, sigma, f)
0670:
+0671: return u, derr
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_v_u)); __Pyx_GIVEREF(((PyObject *)__pyx_v_u)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_u)); __Pyx_INCREF(((PyObject *)__pyx_v_derr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_derr)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_derr)); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_v_u)); __Pyx_GIVEREF(((PyObject *)__pyx_v_u)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_u)); __Pyx_INCREF(((PyObject *)__pyx_v_derr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_derr)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_derr)); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_v_u)); __Pyx_GIVEREF(((PyObject *)__pyx_v_u)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_u)); __Pyx_INCREF(((PyObject *)__pyx_v_derr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_derr)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_derr)); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_v_u)); __Pyx_GIVEREF(((PyObject *)__pyx_v_u)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_u)); __Pyx_INCREF(((PyObject *)__pyx_v_derr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_derr)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_derr)); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
0672:
+0673: cdef void pm_rsearcher(uint_t[:, :, ::1] I_n, float_t[:, ::1] W, float_t[:, ::1] I0, gsl_rng *r, float_t[:, :, ::1] u,
static void __pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_pm_rsearcher(__Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, gsl_rng *__pyx_v_r, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_derrs, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, int __pyx_v_j, int __pyx_v_k, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_N, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
double __pyx_v_err;
double __pyx_v_err0;
double __pyx_v_err_min;
double __pyx_v_uy_min;
double __pyx_v_ux_min;
double __pyx_v_ux;
double __pyx_v_uy;
CYTHON_UNUSED int __pyx_v_ii;
/* … */
/* function exit code */
}
static void __pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_pm_rsearcher(__Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, gsl_rng *__pyx_v_r, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_derrs, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, int __pyx_v_j, int __pyx_v_k, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_N, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
double __pyx_v_err;
double __pyx_v_err0;
double __pyx_v_err_min;
double __pyx_v_uy_min;
double __pyx_v_ux_min;
double __pyx_v_ux;
double __pyx_v_uy;
CYTHON_UNUSED int __pyx_v_ii;
/* … */
/* function exit code */
}
static void __pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_pm_rsearcher(__Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, gsl_rng *__pyx_v_r, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_derrs, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, int __pyx_v_j, int __pyx_v_k, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_N, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
double __pyx_v_err;
double __pyx_v_err0;
double __pyx_v_err_min;
double __pyx_v_uy_min;
double __pyx_v_ux_min;
double __pyx_v_ux;
double __pyx_v_uy;
CYTHON_UNUSED int __pyx_v_ii;
/* … */
/* function exit code */
}
static void __pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_pm_rsearcher(__Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, gsl_rng *__pyx_v_r, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_derrs, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, int __pyx_v_j, int __pyx_v_k, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_N, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
double __pyx_v_err;
double __pyx_v_err0;
double __pyx_v_err_min;
double __pyx_v_uy_min;
double __pyx_v_ux_min;
double __pyx_v_ux;
double __pyx_v_uy;
CYTHON_UNUSED int __pyx_v_ii;
/* … */
/* function exit code */
}
0674: float_t[:, ::1] derrs, float_t[::1] di, float_t[::1] dj, int j, int k, double sw_y, double sw_x,
0675: unsigned N, double ds_y, double ds_x, double sigma, loss_func f) nogil:
+0676: cdef double err, err0, err_min=FLOAT_MAX, uy_min = 0.0, ux_min = 0.0, ux, uy
__pyx_v_err_min = 1.7976931348623157e+308; __pyx_v_uy_min = 0.0; __pyx_v_ux_min = 0.0; /* … */ __pyx_v_err_min = 1.7976931348623157e+308; __pyx_v_uy_min = 0.0; __pyx_v_ux_min = 0.0; /* … */ __pyx_v_err_min = 1.7976931348623157e+308; __pyx_v_uy_min = 0.0; __pyx_v_ux_min = 0.0; /* … */ __pyx_v_err_min = 1.7976931348623157e+308; __pyx_v_uy_min = 0.0; __pyx_v_ux_min = 0.0;
0677: cdef int ii
0678:
+0679: err0 = FVU_interp(I_n, W[j, k], I0, di, dj, j, k, u[0, j, k],
__pyx_t_1 = __pyx_v_j; __pyx_t_2 = __pyx_v_k; __pyx_t_3 = 0; __pyx_t_4 = __pyx_v_j; __pyx_t_5 = __pyx_v_k; /* … */ __pyx_v_err0 = __pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_1 * __pyx_v_W.strides[0]) )) + __pyx_t_2)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_4 * __pyx_v_u.strides[1]) )) + __pyx_t_5)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_8)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f); /* … */ __pyx_t_1 = __pyx_v_j; __pyx_t_2 = __pyx_v_k; __pyx_t_3 = 0; __pyx_t_4 = __pyx_v_j; __pyx_t_5 = __pyx_v_k; /* … */ __pyx_v_err0 = __pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_1 * __pyx_v_W.strides[0]) )) + __pyx_t_2)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_4 * __pyx_v_u.strides[1]) )) + __pyx_t_5)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_8)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f); /* … */ __pyx_t_1 = __pyx_v_j; __pyx_t_2 = __pyx_v_k; __pyx_t_3 = 0; __pyx_t_4 = __pyx_v_j; __pyx_t_5 = __pyx_v_k; /* … */ __pyx_v_err0 = __pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_1 * __pyx_v_W.strides[0]) )) + __pyx_t_2)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_4 * __pyx_v_u.strides[1]) )) + __pyx_t_5)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_8)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f); /* … */ __pyx_t_1 = __pyx_v_j; __pyx_t_2 = __pyx_v_k; __pyx_t_3 = 0; __pyx_t_4 = __pyx_v_j; __pyx_t_5 = __pyx_v_k; /* … */ __pyx_v_err0 = __pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_1 * __pyx_v_W.strides[0]) )) + __pyx_t_2)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_4 * __pyx_v_u.strides[1]) )) + __pyx_t_5)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_8)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
+0680: u[1, j, k], ds_y, ds_x, sigma, f)
__pyx_t_6 = 1; __pyx_t_7 = __pyx_v_j; __pyx_t_8 = __pyx_v_k; /* … */ __pyx_t_6 = 1; __pyx_t_7 = __pyx_v_j; __pyx_t_8 = __pyx_v_k; /* … */ __pyx_t_6 = 1; __pyx_t_7 = __pyx_v_j; __pyx_t_8 = __pyx_v_k; /* … */ __pyx_t_6 = 1; __pyx_t_7 = __pyx_v_j; __pyx_t_8 = __pyx_v_k;
0681:
+0682: for ii in range(<int>N):
__pyx_t_9 = ((int)__pyx_v_N);
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_ii = __pyx_t_11;
/* … */
__pyx_t_9 = ((int)__pyx_v_N);
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_ii = __pyx_t_11;
/* … */
__pyx_t_9 = ((int)__pyx_v_N);
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_ii = __pyx_t_11;
/* … */
__pyx_t_9 = ((int)__pyx_v_N);
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_ii = __pyx_t_11;
+0683: uy = 2.0 * sw_y * (gsl_rng_uniform(r) - 0.5)
__pyx_v_uy = ((2.0 * __pyx_v_sw_y) * (gsl_rng_uniform(__pyx_v_r) - 0.5));
/* … */
__pyx_v_uy = ((2.0 * __pyx_v_sw_y) * (gsl_rng_uniform(__pyx_v_r) - 0.5));
/* … */
__pyx_v_uy = ((2.0 * __pyx_v_sw_y) * (gsl_rng_uniform(__pyx_v_r) - 0.5));
/* … */
__pyx_v_uy = ((2.0 * __pyx_v_sw_y) * (gsl_rng_uniform(__pyx_v_r) - 0.5));
+0684: ux = 2.0 * sw_x * (gsl_rng_uniform(r) - 0.5)
__pyx_v_ux = ((2.0 * __pyx_v_sw_x) * (gsl_rng_uniform(__pyx_v_r) - 0.5));
/* … */
__pyx_v_ux = ((2.0 * __pyx_v_sw_x) * (gsl_rng_uniform(__pyx_v_r) - 0.5));
/* … */
__pyx_v_ux = ((2.0 * __pyx_v_sw_x) * (gsl_rng_uniform(__pyx_v_r) - 0.5));
/* … */
__pyx_v_ux = ((2.0 * __pyx_v_sw_x) * (gsl_rng_uniform(__pyx_v_r) - 0.5));
0685:
+0686: err = FVU_interp(I_n, W[j, k], I0, di, dj, j, k, u[0, j, k] + uy,
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_j;
__pyx_t_4 = __pyx_v_k;
/* … */
__pyx_v_err = __pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_8 * __pyx_v_W.strides[0]) )) + __pyx_t_7)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_5 * __pyx_v_u.strides[1]) )) + __pyx_t_4)) ))) + __pyx_v_uy), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_1)) ))) + __pyx_v_ux), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_j;
__pyx_t_4 = __pyx_v_k;
/* … */
__pyx_v_err = __pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_8 * __pyx_v_W.strides[0]) )) + __pyx_t_7)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_5 * __pyx_v_u.strides[1]) )) + __pyx_t_4)) ))) + __pyx_v_uy), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_1)) ))) + __pyx_v_ux), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_j;
__pyx_t_4 = __pyx_v_k;
/* … */
__pyx_v_err = __pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_8 * __pyx_v_W.strides[0]) )) + __pyx_t_7)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_5 * __pyx_v_u.strides[1]) )) + __pyx_t_4)) ))) + __pyx_v_uy), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_1)) ))) + __pyx_v_ux), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_j;
__pyx_t_4 = __pyx_v_k;
/* … */
__pyx_v_err = __pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_8 * __pyx_v_W.strides[0]) )) + __pyx_t_7)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_5 * __pyx_v_u.strides[1]) )) + __pyx_t_4)) ))) + __pyx_v_uy), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_1)) ))) + __pyx_v_ux), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
+0687: u[1, j, k] + ux, ds_y, ds_x, sigma, f)
__pyx_t_3 = 1;
__pyx_t_2 = __pyx_v_j;
__pyx_t_1 = __pyx_v_k;
/* … */
__pyx_t_3 = 1;
__pyx_t_2 = __pyx_v_j;
__pyx_t_1 = __pyx_v_k;
/* … */
__pyx_t_3 = 1;
__pyx_t_2 = __pyx_v_j;
__pyx_t_1 = __pyx_v_k;
/* … */
__pyx_t_3 = 1;
__pyx_t_2 = __pyx_v_j;
__pyx_t_1 = __pyx_v_k;
+0688: if err < err_min:
__pyx_t_12 = ((__pyx_v_err < __pyx_v_err_min) != 0);
if (__pyx_t_12) {
/* … */
}
}
/* … */
__pyx_t_12 = ((__pyx_v_err < __pyx_v_err_min) != 0);
if (__pyx_t_12) {
/* … */
}
}
/* … */
__pyx_t_12 = ((__pyx_v_err < __pyx_v_err_min) != 0);
if (__pyx_t_12) {
/* … */
}
}
/* … */
__pyx_t_12 = ((__pyx_v_err < __pyx_v_err_min) != 0);
if (__pyx_t_12) {
/* … */
}
}
+0689: uy_min = uy; ux_min = ux; err_min = err
__pyx_v_uy_min = __pyx_v_uy;
__pyx_v_ux_min = __pyx_v_ux;
__pyx_v_err_min = __pyx_v_err;
/* … */
__pyx_v_uy_min = __pyx_v_uy;
__pyx_v_ux_min = __pyx_v_ux;
__pyx_v_err_min = __pyx_v_err;
/* … */
__pyx_v_uy_min = __pyx_v_uy;
__pyx_v_ux_min = __pyx_v_ux;
__pyx_v_err_min = __pyx_v_err;
/* … */
__pyx_v_uy_min = __pyx_v_uy;
__pyx_v_ux_min = __pyx_v_ux;
__pyx_v_err_min = __pyx_v_err;
0690:
+0691: u[0, j, k] += uy_min; u[1, j, k] += ux_min
__pyx_t_1 = 0; __pyx_t_2 = __pyx_v_j; __pyx_t_3 = __pyx_v_k; *((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_1 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_3)) )) += __pyx_v_uy_min; __pyx_t_3 = 1; __pyx_t_2 = __pyx_v_j; __pyx_t_1 = __pyx_v_k; *((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_1)) )) += __pyx_v_ux_min; /* … */ __pyx_t_1 = 0; __pyx_t_2 = __pyx_v_j; __pyx_t_3 = __pyx_v_k; *((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_1 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_3)) )) += __pyx_v_uy_min; __pyx_t_3 = 1; __pyx_t_2 = __pyx_v_j; __pyx_t_1 = __pyx_v_k; *((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_1)) )) += __pyx_v_ux_min; /* … */ __pyx_t_1 = 0; __pyx_t_2 = __pyx_v_j; __pyx_t_3 = __pyx_v_k; *((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_1 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_3)) )) += __pyx_v_uy_min; __pyx_t_3 = 1; __pyx_t_2 = __pyx_v_j; __pyx_t_1 = __pyx_v_k; *((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_1)) )) += __pyx_v_ux_min; /* … */ __pyx_t_1 = 0; __pyx_t_2 = __pyx_v_j; __pyx_t_3 = __pyx_v_k; *((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_1 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_3)) )) += __pyx_v_uy_min; __pyx_t_3 = 1; __pyx_t_2 = __pyx_v_j; __pyx_t_1 = __pyx_v_k; *((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_1)) )) += __pyx_v_ux_min;
+0692: derrs[j, k] = err0 - err_min if err_min < err0 else 0.0
if (((__pyx_v_err_min < __pyx_v_err0) != 0)) {
__pyx_t_13 = (__pyx_v_err0 - __pyx_v_err_min);
} else {
__pyx_t_13 = 0.0;
}
__pyx_t_1 = __pyx_v_j;
__pyx_t_2 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_derrs.data + __pyx_t_1 * __pyx_v_derrs.strides[0]) )) + __pyx_t_2)) )) = __pyx_t_13;
/* … */
if (((__pyx_v_err_min < __pyx_v_err0) != 0)) {
__pyx_t_13 = (__pyx_v_err0 - __pyx_v_err_min);
} else {
__pyx_t_13 = 0.0;
}
__pyx_t_1 = __pyx_v_j;
__pyx_t_2 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_derrs.data + __pyx_t_1 * __pyx_v_derrs.strides[0]) )) + __pyx_t_2)) )) = __pyx_t_13;
/* … */
if (((__pyx_v_err_min < __pyx_v_err0) != 0)) {
__pyx_t_13 = (__pyx_v_err0 - __pyx_v_err_min);
} else {
__pyx_t_13 = 0.0;
}
__pyx_t_1 = __pyx_v_j;
__pyx_t_2 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_derrs.data + __pyx_t_1 * __pyx_v_derrs.strides[0]) )) + __pyx_t_2)) )) = __pyx_t_13;
/* … */
if (((__pyx_v_err_min < __pyx_v_err0) != 0)) {
__pyx_t_13 = (__pyx_v_err0 - __pyx_v_err_min);
} else {
__pyx_t_13 = 0.0;
}
__pyx_t_1 = __pyx_v_j;
__pyx_t_2 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_derrs.data + __pyx_t_1 * __pyx_v_derrs.strides[0]) )) + __pyx_t_2)) )) = __pyx_t_13;
0693:
+0694: def pm_rsearch(uint_t[:, :, ::1] I_n not None, float_t[:, ::1] W not None, float_t[:, ::1] I0 not None,
/* Python wrapper */
static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_7pm_rsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6pyrost_3bin_6pyrost_6pm_rsearch[] = "Update the pixel mapping by minimizing mean-squared-error (MSE).\n Perform a random search within the search window of `sw_y`, `sw_x` size\n along the vertical and fast axes accordingly in order to minimize the MSE\n at each point of the detector grid separately.\n\n Args:\n I_n (numpy.ndarray) : Measured intensity frames.\n W (numpy.ndarray) : Measured frames' whitefield.\n I0 (numpy.ndarray) : Reference image of the sample.\n u (numpy.ndarray) : The discrete geometrical mapping of the detector\n plane to the reference image.\n di (numpy.ndarray) : Initial sample's translations along the vertical\n detector axis in pixels.\n dj (numpy.ndarray) : Initial sample's translations along the horizontal\n detector axis in pixels.\n sw_y (float) : Search window size in pixels along the vertical detector\n axis.\n sw_x (float) : Search window size in pixels along the horizontal detector\n axis.\n n_trials (int) : Number of points generated at each pixel of the detector grid.\n seed (int) : Specify seed for the random number generation.\n ds_y (float) : Sampling interval of reference image in pixels along the\n vertical axis.\n ds_x (float) : Sampling interval of reference image in pixels along the\n horizontal axis.\n sigma (float) : The standard deviation of `I_n`.\n loss (str) : Choose between the following loss functions:\n\n * 'Epsilon': Epsilon loss function (epsilon = 0.5)\n * 'Huber' : Huber loss function (k = 1.345)\n * 'L1' : L1 norm loss function.\n * 'L2' : L2 norm loss function.\n\n num_threads (int) : Number of threads.\n\n Returns:\n Tuple[numpy.ndarray, numpy.ndarray] : A tuple of two elements ('u', 'derr').\n The elements are the following:\n\n * 'u' : Updated pixel mapping array.\n * 'derr' : E""rror decrease for each pixel in the detector grid.\n\n Notes:\n The error metric as a function of pixel mapping displacements\n is given by:\n\n .. math::\n\n \\varepsilon_{pm}[i, j, i^{\\prime}, j^{\\prime}] = \\frac{1}{N}\n \\sum_{n = 0}^N f\\left( \\frac{I[n, i, j] - W[i, j]\n I_{ref}[u[0, i, j] + i^{\\prime} - di[n],\n u[1, i, j] + j^{\\prime} - dj[n]]}{\\sigma} \\right)\n\n where :math:`f(x)` is L1 norm, L2 norm or Huber loss function.\n ";
static PyMethodDef __pyx_mdef_6pyrost_3bin_6pyrost_7pm_rsearch = {"pm_rsearch", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pyrost_3bin_6pyrost_7pm_rsearch, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_6pm_rsearch};
static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_7pm_rsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_signatures = 0;
PyObject *__pyx_v_args = 0;
PyObject *__pyx_v_kwargs = 0;
CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
PyObject* values[4] = {0,0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 694, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 694, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
}
__pyx_v_signatures = values[0];
__pyx_v_args = values[1];
__pyx_v_kwargs = values[2];
__pyx_v_defaults = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 694, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_6pm_rsearch(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_6pm_rsearch(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
PyObject *__pyx_v_dest_sig = NULL;
Py_ssize_t __pyx_v_i;
PyTypeObject *__pyx_v_ndarray = 0;
__Pyx_memviewslice __pyx_v_memslice;
Py_ssize_t __pyx_v_itemsize;
int __pyx_v_dtype_signed;
char __pyx_v_kind;
int __pyx_v____pyx_uint64_t_is_signed;
int __pyx_v____pyx_uint32_t_is_signed;
PyObject *__pyx_v_arg = NULL;
PyObject *__pyx_v_dtype = NULL;
PyObject *__pyx_v_arg_base = NULL;
PyObject *__pyx_v_candidates = NULL;
PyObject *__pyx_v_sig = NULL;
int __pyx_v_match_found;
PyObject *__pyx_v_src_sig = NULL;
PyObject *__pyx_v_dst_type = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pm_rsearch", 0);
__Pyx_INCREF(__pyx_v_kwargs);
__pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{ Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
}
}
__pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_3 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 694, __pyx_L1_error)
__pyx_t_3 = ((!__pyx_t_4) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L4_bool_binop_done:;
if (__pyx_t_2) {
__Pyx_INCREF(Py_None);
__Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
}
__pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_v_itemsize = -1L;
__pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
__pyx_v____pyx_uint32_t_is_signed = (!((((__pyx_t_5numpy_uint32_t)-1L) > 0) != 0));
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 694, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 694, __pyx_L1_error)
__pyx_t_2 = ((0 < __pyx_t_5) != 0);
if (__pyx_t_2) {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 694, __pyx_L1_error)
}
__pyx_t_1 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 0);
__Pyx_INCREF(__pyx_t_1);
__pyx_v_arg = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L6;
}
__pyx_t_3 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L7_bool_binop_done;
}
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 694, __pyx_L1_error)
}
__pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_I_n, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 694, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_4 != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L7_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 694, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_I_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_arg = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L6;
}
/*else*/ {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 694, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 694, __pyx_L1_error)
__pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_INCREF(__pyx_int_13);
__Pyx_GIVEREF(__pyx_int_13);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_13);
__Pyx_INCREF(__pyx_n_s_s);
__Pyx_GIVEREF(__pyx_n_s_s);
PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_Raise(__pyx_t_6, 0, 0, 0);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__PYX_ERR(0, 694, __pyx_L1_error)
}
__pyx_L6:;
while (1) {
__pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_dtype = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L12;
}
__pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_arg_base = __pyx_t_6;
__pyx_t_6 = 0;
__pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_dtype = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L13;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__pyx_v_dtype = Py_None;
}
__pyx_L13:;
goto __pyx_L12;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__pyx_v_dtype = Py_None;
}
__pyx_L12:;
__pyx_v_itemsize = -1L;
__pyx_t_2 = (__pyx_v_dtype != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_itemsize = __pyx_t_5;
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_kind = __pyx_t_7;
__pyx_v_dtype_signed = (__pyx_v_kind == 'i');
switch (__pyx_v_kind) {
case 'i':
case 'u':
__pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L16_bool_binop_done;
}
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L16_bool_binop_done;
}
__pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L16_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 694, __pyx_L1_error)
goto __pyx_L10_break;
}
__pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint32_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L20_bool_binop_done;
}
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L20_bool_binop_done;
}
__pyx_t_2 = ((!((__pyx_v____pyx_uint32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L20_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 694, __pyx_L1_error)
goto __pyx_L10_break;
}
break;
case 'f':
break;
case 'c':
break;
case 'O':
break;
default: break;
}
}
}
__pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L24_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L24_bool_binop_done:;
if (__pyx_t_3) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_3 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_3) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 694, __pyx_L1_error)
goto __pyx_L10_break;
}
/*else*/ {
PyErr_Clear();
}
}
__pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L28_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint32_t))) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L28_bool_binop_done:;
if (__pyx_t_3) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_3 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_3) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 694, __pyx_L1_error)
goto __pyx_L10_break;
}
/*else*/ {
PyErr_Clear();
}
}
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 694, __pyx_L1_error)
goto __pyx_L10_break;
}
__pyx_L10_break:;
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 694, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 694, __pyx_L1_error)
__pyx_t_3 = ((1 < __pyx_t_5) != 0);
if (__pyx_t_3) {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 694, __pyx_L1_error)
}
__pyx_t_6 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 1);
__Pyx_INCREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
__pyx_t_6 = 0;
goto __pyx_L31;
}
__pyx_t_2 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_2 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_3 = __pyx_t_4;
goto __pyx_L32_bool_binop_done;
}
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 694, __pyx_L1_error)
}
__pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_W, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 694, __pyx_L1_error)
__pyx_t_2 = (__pyx_t_4 != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L32_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 694, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_W); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
__pyx_t_6 = 0;
goto __pyx_L31;
}
/*else*/ {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 694, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 694, __pyx_L1_error)
__pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_int_13);
__Pyx_GIVEREF(__pyx_int_13);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_13);
__Pyx_INCREF(__pyx_n_s_s);
__Pyx_GIVEREF(__pyx_n_s_s);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 694, __pyx_L1_error)
}
__pyx_L31:;
while (1) {
__pyx_t_3 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
__pyx_t_1 = 0;
goto __pyx_L37;
}
__pyx_t_3 = __pyx_memoryview_check(__pyx_v_arg);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_arg_base, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
__pyx_t_1 = 0;
goto __pyx_L38;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
}
__pyx_L38:;
goto __pyx_L37;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
}
__pyx_L37:;
__pyx_v_itemsize = -1L;
__pyx_t_3 = (__pyx_v_dtype != Py_None);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_itemsize = __pyx_t_5;
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_1); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_kind = __pyx_t_7;
__pyx_v_dtype_signed = (__pyx_v_kind == 'i');
switch (__pyx_v_kind) {
case 'i':
case 'u':
break;
case 'f':
__pyx_t_3 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L41_bool_binop_done;
}
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 2) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L41_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 694, __pyx_L1_error)
goto __pyx_L35_break;
}
__pyx_t_3 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L44_bool_binop_done;
}
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 2) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L44_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 694, __pyx_L1_error)
goto __pyx_L35_break;
}
break;
case 'c':
break;
case 'O':
break;
default: break;
}
}
}
__pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L47_bool_binop_done;
}
__pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L47_bool_binop_done:;
if (__pyx_t_2) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_2 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_2) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 694, __pyx_L1_error)
goto __pyx_L35_break;
}
/*else*/ {
PyErr_Clear();
}
}
__pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L51_bool_binop_done;
}
__pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L51_bool_binop_done:;
if (__pyx_t_2) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_2 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_2) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 694, __pyx_L1_error)
goto __pyx_L35_break;
}
/*else*/ {
PyErr_Clear();
}
}
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 694, __pyx_L1_error)
goto __pyx_L35_break;
}
__pyx_L35_break:;
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_candidates = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_5 = 0;
if (unlikely(__pyx_v_signatures == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 694, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_9, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_10);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_v_match_found = 0;
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_14 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
__pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
if (likely(__pyx_t_14)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
__Pyx_INCREF(__pyx_t_14);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_13, function);
}
}
__pyx_t_12 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2);
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
__pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
if (likely(__pyx_t_12)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
__Pyx_INCREF(__pyx_t_12);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_13, function);
}
}
__pyx_t_6 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__3);
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_15 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 694, __pyx_L1_error)
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_i = __pyx_t_17;
__pyx_t_6 = PyList_GET_ITEM(__pyx_v_dest_sig, __pyx_v_i);
__Pyx_INCREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_2 = (__pyx_v_dst_type != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_13 = PyObject_RichCompare(__pyx_t_6, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
if (__pyx_t_3) {
__pyx_v_match_found = 1;
goto __pyx_L59;
}
/*else*/ {
__pyx_v_match_found = 0;
goto __pyx_L57_break;
}
__pyx_L59:;
}
}
__pyx_L57_break:;
__pyx_t_3 = (__pyx_v_match_found != 0);
if (__pyx_t_3) {
__pyx_t_18 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 694, __pyx_L1_error)
}
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
__pyx_t_2 = ((!__pyx_t_3) != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 694, __pyx_L1_error)
}
__pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 694, __pyx_L1_error)
__pyx_t_2 = ((__pyx_t_9 > 1) != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 694, __pyx_L1_error)
}
/*else*/ {
__Pyx_XDECREF(__pyx_r);
if (unlikely(__pyx_v_signatures == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 694, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), PyList_GET_ITEM(__pyx_v_candidates, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_AddTraceback("pyrost.bin.pyrost.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_dest_sig);
__Pyx_XDECREF(__pyx_v_ndarray);
__Pyx_XDECREF(__pyx_v_arg);
__Pyx_XDECREF(__pyx_v_dtype);
__Pyx_XDECREF(__pyx_v_arg_base);
__Pyx_XDECREF(__pyx_v_candidates);
__Pyx_XDECREF(__pyx_v_sig);
__Pyx_XDECREF(__pyx_v_src_sig);
__Pyx_XDECREF(__pyx_v_dst_type);
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_184__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults28, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults28, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults28, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults28, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_53pm_rsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_6pyrost_3bin_6pyrost_53pm_rsearch = {"__pyx_fuse_0_0pm_rsearch", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_53pm_rsearch, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_6pm_rsearch};
static PyObject *__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_53pm_rsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_sw_y;
double __pyx_v_sw_x;
unsigned int __pyx_v_n_trials;
unsigned long __pyx_v_seed;
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pm_rsearch (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u0,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_sw_y,&__pyx_n_s_sw_x,&__pyx_n_s_n_trials,&__pyx_n_s_seed,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[15] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults28 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults28, __pyx_self);
values[13] = __pyx_dynamic_args->__pyx_arg_loss;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 1); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 2); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 3); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 4); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 5); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 6); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 7); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_trials)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 8); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_seed)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 9); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 10:
if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 10); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 11:
if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 11); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 12:
if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 12); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 13:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[13] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 14:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[14] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pm_rsearch") < 0)) __PYX_ERR(0, 694, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 694, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 694, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 694, __pyx_L3_error)
__pyx_v_u0 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u0.memview)) __PYX_ERR(0, 695, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 695, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 695, __pyx_L3_error)
__pyx_v_sw_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_sw_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_sw_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_sw_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_n_trials = __Pyx_PyInt_As_unsigned_int(values[8]); if (unlikely((__pyx_v_n_trials == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_seed = __Pyx_PyInt_As_unsigned_long(values[9]); if (unlikely((__pyx_v_seed == (unsigned long)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[10]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[11]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[12]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[13]);
if (values[14]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[14]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 697, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 694, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_rsearch", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 694, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 694, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 694, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u0"); __PYX_ERR(0, 695, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 695, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 695, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 697, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_52pm_rsearch(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u0, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_n_trials, __pyx_v_seed, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_52pm_rsearch(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u0, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_n_trials, unsigned long __pyx_v_seed, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, PyObject *__pyx_v_loss, unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_j;
int __pyx_v_k;
npy_intp *__pyx_v_u_shape;
PyArrayObject *__pyx_v_u = 0;
PyArrayObject *__pyx_v_derr = 0;
__Pyx_memviewslice __pyx_v__u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v__derr = { 0, 0, { 0 }, { 0 }, { 0 } };
gsl_rng *__pyx_v_r_master;
unsigned long __pyx_v_thread_seed;
gsl_rng *__pyx_v_r;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_0_0pm_rsearch", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_7, 1);
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_rsearch", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_u);
__Pyx_XDECREF((PyObject *)__pyx_v_derr);
__PYX_XDEC_MEMVIEW(&__pyx_v__u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v__derr, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_186__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults29, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults29, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults29, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults29, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_55pm_rsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_6pyrost_3bin_6pyrost_55pm_rsearch = {"__pyx_fuse_0_1pm_rsearch", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_55pm_rsearch, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_6pm_rsearch};
static PyObject *__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_55pm_rsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_sw_y;
double __pyx_v_sw_x;
unsigned int __pyx_v_n_trials;
unsigned long __pyx_v_seed;
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pm_rsearch (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u0,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_sw_y,&__pyx_n_s_sw_x,&__pyx_n_s_n_trials,&__pyx_n_s_seed,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[15] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults29 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults29, __pyx_self);
values[13] = __pyx_dynamic_args->__pyx_arg_loss;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 1); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 2); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 3); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 4); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 5); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 6); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 7); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_trials)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 8); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_seed)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 9); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 10:
if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 10); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 11:
if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 11); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 12:
if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 12); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 13:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[13] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 14:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[14] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pm_rsearch") < 0)) __PYX_ERR(0, 694, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 694, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 694, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 694, __pyx_L3_error)
__pyx_v_u0 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u0.memview)) __PYX_ERR(0, 695, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 695, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 695, __pyx_L3_error)
__pyx_v_sw_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_sw_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_sw_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_sw_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_n_trials = __Pyx_PyInt_As_unsigned_int(values[8]); if (unlikely((__pyx_v_n_trials == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_seed = __Pyx_PyInt_As_unsigned_long(values[9]); if (unlikely((__pyx_v_seed == (unsigned long)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[10]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[11]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[12]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[13]);
if (values[14]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[14]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 697, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 694, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_rsearch", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 694, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 694, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 694, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u0"); __PYX_ERR(0, 695, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 695, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 695, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 697, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_54pm_rsearch(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u0, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_n_trials, __pyx_v_seed, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_54pm_rsearch(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u0, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_n_trials, unsigned long __pyx_v_seed, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, PyObject *__pyx_v_loss, unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_j;
int __pyx_v_k;
npy_intp *__pyx_v_u_shape;
PyArrayObject *__pyx_v_u = 0;
PyArrayObject *__pyx_v_derr = 0;
__Pyx_memviewslice __pyx_v__u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v__derr = { 0, 0, { 0 }, { 0 }, { 0 } };
gsl_rng *__pyx_v_r_master;
unsigned long __pyx_v_thread_seed;
gsl_rng *__pyx_v_r;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_0_1pm_rsearch", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_7, 1);
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_rsearch", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_u);
__Pyx_XDECREF((PyObject *)__pyx_v_derr);
__PYX_XDEC_MEMVIEW(&__pyx_v__u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v__derr, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_188__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults30, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults30, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults30, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults30, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_57pm_rsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_6pyrost_3bin_6pyrost_57pm_rsearch = {"__pyx_fuse_1_0pm_rsearch", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_57pm_rsearch, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_6pm_rsearch};
static PyObject *__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_57pm_rsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_sw_y;
double __pyx_v_sw_x;
unsigned int __pyx_v_n_trials;
unsigned long __pyx_v_seed;
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pm_rsearch (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u0,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_sw_y,&__pyx_n_s_sw_x,&__pyx_n_s_n_trials,&__pyx_n_s_seed,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[15] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults30 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults30, __pyx_self);
values[13] = __pyx_dynamic_args->__pyx_arg_loss;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 1); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 2); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 3); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 4); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 5); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 6); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 7); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_trials)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 8); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_seed)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 9); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 10:
if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 10); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 11:
if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 11); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 12:
if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 12); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 13:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[13] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 14:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[14] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pm_rsearch") < 0)) __PYX_ERR(0, 694, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 694, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 694, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 694, __pyx_L3_error)
__pyx_v_u0 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u0.memview)) __PYX_ERR(0, 695, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 695, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 695, __pyx_L3_error)
__pyx_v_sw_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_sw_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_sw_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_sw_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_n_trials = __Pyx_PyInt_As_unsigned_int(values[8]); if (unlikely((__pyx_v_n_trials == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_seed = __Pyx_PyInt_As_unsigned_long(values[9]); if (unlikely((__pyx_v_seed == (unsigned long)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[10]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[11]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[12]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[13]);
if (values[14]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[14]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 697, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 694, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_rsearch", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 694, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 694, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 694, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u0"); __PYX_ERR(0, 695, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 695, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 695, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 697, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_56pm_rsearch(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u0, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_n_trials, __pyx_v_seed, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_56pm_rsearch(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u0, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_n_trials, unsigned long __pyx_v_seed, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, PyObject *__pyx_v_loss, unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_j;
int __pyx_v_k;
npy_intp *__pyx_v_u_shape;
PyArrayObject *__pyx_v_u = 0;
PyArrayObject *__pyx_v_derr = 0;
__Pyx_memviewslice __pyx_v__u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v__derr = { 0, 0, { 0 }, { 0 }, { 0 } };
gsl_rng *__pyx_v_r_master;
unsigned long __pyx_v_thread_seed;
gsl_rng *__pyx_v_r;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_1_0pm_rsearch", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_7, 1);
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_rsearch", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_u);
__Pyx_XDECREF((PyObject *)__pyx_v_derr);
__PYX_XDEC_MEMVIEW(&__pyx_v__u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v__derr, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_190__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults31, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults31, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults31, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults31, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_59pm_rsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_6pyrost_3bin_6pyrost_59pm_rsearch = {"__pyx_fuse_1_1pm_rsearch", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_59pm_rsearch, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_6pm_rsearch};
static PyObject *__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_59pm_rsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_sw_y;
double __pyx_v_sw_x;
unsigned int __pyx_v_n_trials;
unsigned long __pyx_v_seed;
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pm_rsearch (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u0,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_sw_y,&__pyx_n_s_sw_x,&__pyx_n_s_n_trials,&__pyx_n_s_seed,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[15] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults31 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults31, __pyx_self);
values[13] = __pyx_dynamic_args->__pyx_arg_loss;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 1); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 2); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 3); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 4); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 5); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 6); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 7); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_trials)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 8); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_seed)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 9); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 10:
if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 10); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 11:
if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 11); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 12:
if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, 12); __PYX_ERR(0, 694, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 13:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[13] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 14:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[14] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pm_rsearch") < 0)) __PYX_ERR(0, 694, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 694, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 694, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 694, __pyx_L3_error)
__pyx_v_u0 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u0.memview)) __PYX_ERR(0, 695, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 695, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 695, __pyx_L3_error)
__pyx_v_sw_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_sw_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_sw_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_sw_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_n_trials = __Pyx_PyInt_As_unsigned_int(values[8]); if (unlikely((__pyx_v_n_trials == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_seed = __Pyx_PyInt_As_unsigned_long(values[9]); if (unlikely((__pyx_v_seed == (unsigned long)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[10]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[11]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[12]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[13]);
if (values[14]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[14]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 697, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("pm_rsearch", 0, 13, 15, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 694, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_rsearch", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 694, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 694, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 694, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u0"); __PYX_ERR(0, 695, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 695, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 695, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 697, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_58pm_rsearch(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u0, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_n_trials, __pyx_v_seed, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_58pm_rsearch(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u0, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_n_trials, unsigned long __pyx_v_seed, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, PyObject *__pyx_v_loss, unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_j;
int __pyx_v_k;
npy_intp *__pyx_v_u_shape;
PyArrayObject *__pyx_v_u = 0;
PyArrayObject *__pyx_v_derr = 0;
__Pyx_memviewslice __pyx_v__u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v__derr = { 0, 0, { 0 }, { 0 }, { 0 } };
gsl_rng *__pyx_v_r_master;
unsigned long __pyx_v_thread_seed;
gsl_rng *__pyx_v_r;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_1_1pm_rsearch", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_7, 1);
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_rsearch", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_u);
__Pyx_XDECREF((PyObject *)__pyx_v_derr);
__PYX_XDEC_MEMVIEW(&__pyx_v__u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v__derr, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_GIVEREF(__pyx_n_u_Huber);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_n_u_Huber);
__Pyx_GIVEREF(__pyx_t_4);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4);
__pyx_t_4 = 0;
/* … */
__pyx_tuple__39 = PyTuple_Pack(29, __pyx_n_s_I_n, __pyx_n_s_W, __pyx_n_s_I0, __pyx_n_s_u0, __pyx_n_s_di, __pyx_n_s_dj, __pyx_n_s_sw_y, __pyx_n_s_sw_x, __pyx_n_s_n_trials, __pyx_n_s_seed, __pyx_n_s_ds_y, __pyx_n_s_ds_x, __pyx_n_s_sigma, __pyx_n_s_loss, __pyx_n_s_num_threads, __pyx_n_s_f, __pyx_n_s_type_num, __pyx_n_s_Y, __pyx_n_s_X, __pyx_n_s_j, __pyx_n_s_k, __pyx_n_s_u_shape, __pyx_n_s_u, __pyx_n_s_derr, __pyx_n_s_u_2, __pyx_n_s_derr_2, __pyx_n_s_r_master, __pyx_n_s_thread_seed, __pyx_n_s_r); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__39);
__Pyx_GIVEREF(__pyx_tuple__39);
__pyx_t_4 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0_0__pyx_mdef_6pyrost_3bin_6pyrost_53pm_rsearch, 0, __pyx_n_s_pm_rsearch, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__40)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults28), 1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults28, __pyx_t_1)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults28, __pyx_t_1)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_2);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pyrost_3bin_6pyrost_184__defaults__);
if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_uint64_t_float64_t, __pyx_t_1) < 0) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0_1__pyx_mdef_6pyrost_3bin_6pyrost_55pm_rsearch, 0, __pyx_n_s_pm_rsearch, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__40)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults29), 1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults29, __pyx_t_1)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults29, __pyx_t_1)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_2);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pyrost_3bin_6pyrost_186__defaults__);
if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_uint64_t_float32_t, __pyx_t_1) < 0) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1_0__pyx_mdef_6pyrost_3bin_6pyrost_57pm_rsearch, 0, __pyx_n_s_pm_rsearch, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__40)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults30), 1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults30, __pyx_t_1)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults30, __pyx_t_1)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_2);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pyrost_3bin_6pyrost_188__defaults__);
if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_uint32_t_float64_t, __pyx_t_1) < 0) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1_1__pyx_mdef_6pyrost_3bin_6pyrost_59pm_rsearch, 0, __pyx_n_s_pm_rsearch, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__40)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults31), 1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults31, __pyx_t_1)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults31, __pyx_t_1)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_2);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pyrost_3bin_6pyrost_190__defaults__);
if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_uint32_t_float32_t, __pyx_t_1) < 0) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_6pyrost_3bin_6pyrost_7pm_rsearch, 0, __pyx_n_s_pm_rsearch, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__40)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_2);
((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_4;
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_4 = 0;
if (PyDict_SetItem(__pyx_d, __pyx_n_s_pm_rsearch, __pyx_t_1) < 0) __PYX_ERR(0, 694, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__40 = (PyObject*)__Pyx_PyCode_New(15, 0, 29, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__39, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pyrost_bin_pyrost_pyx, __pyx_n_s_pm_rsearch, 694, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__40)) __PYX_ERR(0, 694, __pyx_L1_error)
0695: float_t[:, :, ::1] u0 not None, float_t[::1] di not None, float_t[::1] dj not None,
0696: double sw_y, double sw_x, unsigned n_trials, unsigned long seed, double ds_y, double ds_x, double sigma,
+0697: str loss='Huber', unsigned num_threads=1):
__pyx_t_4 = __Pyx_PyInt_From_long(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
0698: r"""Update the pixel mapping by minimizing mean-squared-error (MSE).
0699: Perform a random search within the search window of `sw_y`, `sw_x` size
0700: along the vertical and fast axes accordingly in order to minimize the MSE
0701: at each point of the detector grid separately.
0702:
0703: Args:
0704: I_n (numpy.ndarray) : Measured intensity frames.
0705: W (numpy.ndarray) : Measured frames' whitefield.
0706: I0 (numpy.ndarray) : Reference image of the sample.
0707: u (numpy.ndarray) : The discrete geometrical mapping of the detector
0708: plane to the reference image.
0709: di (numpy.ndarray) : Initial sample's translations along the vertical
0710: detector axis in pixels.
0711: dj (numpy.ndarray) : Initial sample's translations along the horizontal
0712: detector axis in pixels.
0713: sw_y (float) : Search window size in pixels along the vertical detector
0714: axis.
0715: sw_x (float) : Search window size in pixels along the horizontal detector
0716: axis.
0717: n_trials (int) : Number of points generated at each pixel of the detector grid.
0718: seed (int) : Specify seed for the random number generation.
0719: ds_y (float) : Sampling interval of reference image in pixels along the
0720: vertical axis.
0721: ds_x (float) : Sampling interval of reference image in pixels along the
0722: horizontal axis.
0723: sigma (float) : The standard deviation of `I_n`.
0724: loss (str) : Choose between the following loss functions:
0725:
0726: * 'Epsilon': Epsilon loss function (epsilon = 0.5)
0727: * 'Huber' : Huber loss function (k = 1.345)
0728: * 'L1' : L1 norm loss function.
0729: * 'L2' : L2 norm loss function.
0730:
0731: num_threads (int) : Number of threads.
0732:
0733: Returns:
0734: Tuple[numpy.ndarray, numpy.ndarray] : A tuple of two elements ('u', 'derr').
0735: The elements are the following:
0736:
0737: * 'u' : Updated pixel mapping array.
0738: * 'derr' : Error decrease for each pixel in the detector grid.
0739:
0740: Notes:
0741: The error metric as a function of pixel mapping displacements
0742: is given by:
0743:
0744: .. math::
0745:
0746: \varepsilon_{pm}[i, j, i^{\prime}, j^{\prime}] = \frac{1}{N}
0747: \sum_{n = 0}^N f\left( \frac{I[n, i, j] - W[i, j]
0748: I_{ref}[u[0, i, j] + i^{\prime} - di[n],
0749: u[1, i, j] + j^{\prime} - dj[n]]}{\sigma} \right)
0750:
0751: where :math:`f(x)` is L1 norm, L2 norm or Huber loss function.
0752: """
+0753: if ds_y <= 0.0 or ds_x <= 0.0:
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
+0754: raise ValueError('Sampling intervals must be positive')
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 754, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 754, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 754, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 754, __pyx_L1_error)
0755:
+0756: cdef loss_func f = choose_loss(loss)
__pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss); /* … */ __pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss); /* … */ __pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss); /* … */ __pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss);
0757:
+0758: cdef int type_num = np.PyArray_TYPE(W.base)
__pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 758, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 758, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 758, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 758, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0759: cdef int Y = I_n.shape[1], X = I_n.shape[2], j, k
__pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]);
0760:
+0761: cdef np.npy_intp *u_shape = [2, Y, X]
__pyx_t_5[0] = 2; __pyx_t_5[1] = __pyx_v_Y; __pyx_t_5[2] = __pyx_v_X; __pyx_v_u_shape = __pyx_t_5; /* … */ __pyx_t_5[0] = 2; __pyx_t_5[1] = __pyx_v_Y; __pyx_t_5[2] = __pyx_v_X; __pyx_v_u_shape = __pyx_t_5; /* … */ __pyx_t_5[0] = 2; __pyx_t_5[1] = __pyx_v_Y; __pyx_t_5[2] = __pyx_v_X; __pyx_v_u_shape = __pyx_t_5; /* … */ __pyx_t_5[0] = 2; __pyx_t_5[1] = __pyx_v_Y; __pyx_t_5[2] = __pyx_v_X; __pyx_v_u_shape = __pyx_t_5;
+0762: cdef np.ndarray u = np.PyArray_SimpleNew(3, u_shape, type_num)
__pyx_t_4 = PyArray_SimpleNew(3, __pyx_v_u_shape, __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 762, __pyx_L1_error) __pyx_v_u = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_SimpleNew(3, __pyx_v_u_shape, __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 762, __pyx_L1_error) __pyx_v_u = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_SimpleNew(3, __pyx_v_u_shape, __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 762, __pyx_L1_error) __pyx_v_u = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_SimpleNew(3, __pyx_v_u_shape, __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 762, __pyx_L1_error) __pyx_v_u = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0;
+0763: cdef np.ndarray derr = np.PyArray_ZEROS(2, u_shape + 1, type_num, 0)
__pyx_t_4 = PyArray_ZEROS(2, (__pyx_v_u_shape + 1), __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 763, __pyx_L1_error) __pyx_v_derr = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_ZEROS(2, (__pyx_v_u_shape + 1), __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 763, __pyx_L1_error) __pyx_v_derr = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_ZEROS(2, (__pyx_v_u_shape + 1), __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 763, __pyx_L1_error) __pyx_v_derr = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_ZEROS(2, (__pyx_v_u_shape + 1), __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 763, __pyx_L1_error) __pyx_v_derr = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0;
+0764: cdef float_t[:, :, ::1] _u = u
__pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(((PyObject *)__pyx_v_u), PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 764, __pyx_L1_error) __pyx_v__u = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(((PyObject *)__pyx_v_u), PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 764, __pyx_L1_error) __pyx_v__u = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(((PyObject *)__pyx_v_u), PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 764, __pyx_L1_error) __pyx_v__u = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(((PyObject *)__pyx_v_u), PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 764, __pyx_L1_error) __pyx_v__u = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL;
+0765: cdef float_t[:, ::1] _derr = derr
__pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(((PyObject *)__pyx_v_derr), PyBUF_WRITABLE); if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 765, __pyx_L1_error) __pyx_v__derr = __pyx_t_7; __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL; /* … */ __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(((PyObject *)__pyx_v_derr), PyBUF_WRITABLE); if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 765, __pyx_L1_error) __pyx_v__derr = __pyx_t_7; __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL; /* … */ __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(((PyObject *)__pyx_v_derr), PyBUF_WRITABLE); if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 765, __pyx_L1_error) __pyx_v__derr = __pyx_t_7; __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL; /* … */ __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(((PyObject *)__pyx_v_derr), PyBUF_WRITABLE); if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 765, __pyx_L1_error) __pyx_v__derr = __pyx_t_7; __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL;
0766:
+0767: cdef gsl_rng *r_master = gsl_rng_alloc(gsl_rng_mt19937)
__pyx_v_r_master = gsl_rng_alloc(gsl_rng_mt19937); /* … */ __pyx_v_r_master = gsl_rng_alloc(gsl_rng_mt19937); /* … */ __pyx_v_r_master = gsl_rng_alloc(gsl_rng_mt19937); /* … */ __pyx_v_r_master = gsl_rng_alloc(gsl_rng_mt19937);
+0768: gsl_rng_set(r_master, seed)
gsl_rng_set(__pyx_v_r_master, __pyx_v_seed); /* … */ gsl_rng_set(__pyx_v_r_master, __pyx_v_seed); /* … */ gsl_rng_set(__pyx_v_r_master, __pyx_v_seed); /* … */ gsl_rng_set(__pyx_v_r_master, __pyx_v_seed);
0769: cdef unsigned long thread_seed
0770: cdef gsl_rng *r
0771:
+0772: with nogil, parallel(num_threads=num_threads):
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_r, __pyx_v_thread_seed) {
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_r, __pyx_v_thread_seed) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
{
/* Initialize private variables to invalid values */
__pyx_v_r = ((gsl_rng *)1);
__pyx_v_thread_seed = ((unsigned long)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_r, __pyx_v_thread_seed) {
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_r, __pyx_v_thread_seed) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
{
/* Initialize private variables to invalid values */
__pyx_v_r = ((gsl_rng *)1);
__pyx_v_thread_seed = ((unsigned long)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_r, __pyx_v_thread_seed) {
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_r, __pyx_v_thread_seed) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
{
/* Initialize private variables to invalid values */
__pyx_v_r = ((gsl_rng *)1);
__pyx_v_thread_seed = ((unsigned long)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_r, __pyx_v_thread_seed) {
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_r, __pyx_v_thread_seed) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
{
/* Initialize private variables to invalid values */
__pyx_v_r = ((gsl_rng *)1);
__pyx_v_thread_seed = ((unsigned long)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
+0773: r = gsl_rng_alloc(gsl_rng_mt19937)
__pyx_v_r = gsl_rng_alloc(gsl_rng_mt19937);
/* … */
__pyx_v_r = gsl_rng_alloc(gsl_rng_mt19937);
/* … */
__pyx_v_r = gsl_rng_alloc(gsl_rng_mt19937);
/* … */
__pyx_v_r = gsl_rng_alloc(gsl_rng_mt19937);
+0774: thread_seed = gsl_rng_get(r_master)
__pyx_v_thread_seed = gsl_rng_get(__pyx_v_r_master);
/* … */
__pyx_v_thread_seed = gsl_rng_get(__pyx_v_r_master);
/* … */
__pyx_v_thread_seed = gsl_rng_get(__pyx_v_r_master);
/* … */
__pyx_v_thread_seed = gsl_rng_get(__pyx_v_r_master);
+0775: gsl_rng_set(r, thread_seed)
gsl_rng_set(__pyx_v_r, __pyx_v_thread_seed);
/* … */
gsl_rng_set(__pyx_v_r, __pyx_v_thread_seed);
/* … */
gsl_rng_set(__pyx_v_r, __pyx_v_thread_seed);
/* … */
gsl_rng_set(__pyx_v_r, __pyx_v_thread_seed);
0776:
+0777: for k in prange(X, schedule='guided'):
__pyx_t_8 = __pyx_v_X;
if ((1 == 0)) abort();
{
__pyx_t_10 = (__pyx_t_8 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_10 > 0)
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided)
#endif /* _OPENMP */
for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_10; __pyx_t_9++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_9);
/* Initialize private variables to invalid values */
__pyx_v_j = ((int)0xbad0bad0);
/* … */
__pyx_t_8 = __pyx_v_X;
if ((1 == 0)) abort();
{
__pyx_t_10 = (__pyx_t_8 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_10 > 0)
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided)
#endif /* _OPENMP */
for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_10; __pyx_t_9++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_9);
/* Initialize private variables to invalid values */
__pyx_v_j = ((int)0xbad0bad0);
/* … */
__pyx_t_8 = __pyx_v_X;
if ((1 == 0)) abort();
{
__pyx_t_10 = (__pyx_t_8 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_10 > 0)
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided)
#endif /* _OPENMP */
for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_10; __pyx_t_9++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_9);
/* Initialize private variables to invalid values */
__pyx_v_j = ((int)0xbad0bad0);
/* … */
__pyx_t_8 = __pyx_v_X;
if ((1 == 0)) abort();
{
__pyx_t_10 = (__pyx_t_8 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_10 > 0)
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided)
#endif /* _OPENMP */
for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_10; __pyx_t_9++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_9);
/* Initialize private variables to invalid values */
__pyx_v_j = ((int)0xbad0bad0);
+0778: for j in range(Y):
__pyx_t_11 = __pyx_v_Y;
__pyx_t_12 = __pyx_t_11;
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
__pyx_v_j = __pyx_t_13;
/* … */
__pyx_t_11 = __pyx_v_Y;
__pyx_t_12 = __pyx_t_11;
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
__pyx_v_j = __pyx_t_13;
/* … */
__pyx_t_11 = __pyx_v_Y;
__pyx_t_12 = __pyx_t_11;
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
__pyx_v_j = __pyx_t_13;
/* … */
__pyx_t_11 = __pyx_v_Y;
__pyx_t_12 = __pyx_t_11;
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
__pyx_v_j = __pyx_t_13;
+0779: _u[0, j, k] = u0[0, j, k]; _u[1, j, k] = u0[1, j, k]
__pyx_t_14 = 0;
__pyx_t_15 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = 0;
__pyx_t_18 = __pyx_v_j;
__pyx_t_19 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v__u.data + __pyx_t_17 * __pyx_v__u.strides[0]) ) + __pyx_t_18 * __pyx_v__u.strides[1]) )) + __pyx_t_19)) )) = (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u0.data + __pyx_t_14 * __pyx_v_u0.strides[0]) ) + __pyx_t_15 * __pyx_v_u0.strides[1]) )) + __pyx_t_16)) )));
__pyx_t_16 = 1;
__pyx_t_15 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_t_19 = 1;
__pyx_t_18 = __pyx_v_j;
__pyx_t_17 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v__u.data + __pyx_t_19 * __pyx_v__u.strides[0]) ) + __pyx_t_18 * __pyx_v__u.strides[1]) )) + __pyx_t_17)) )) = (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u0.data + __pyx_t_16 * __pyx_v_u0.strides[0]) ) + __pyx_t_15 * __pyx_v_u0.strides[1]) )) + __pyx_t_14)) )));
/* … */
__pyx_t_14 = 0;
__pyx_t_15 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = 0;
__pyx_t_18 = __pyx_v_j;
__pyx_t_19 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v__u.data + __pyx_t_17 * __pyx_v__u.strides[0]) ) + __pyx_t_18 * __pyx_v__u.strides[1]) )) + __pyx_t_19)) )) = (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u0.data + __pyx_t_14 * __pyx_v_u0.strides[0]) ) + __pyx_t_15 * __pyx_v_u0.strides[1]) )) + __pyx_t_16)) )));
__pyx_t_16 = 1;
__pyx_t_15 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_t_19 = 1;
__pyx_t_18 = __pyx_v_j;
__pyx_t_17 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v__u.data + __pyx_t_19 * __pyx_v__u.strides[0]) ) + __pyx_t_18 * __pyx_v__u.strides[1]) )) + __pyx_t_17)) )) = (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u0.data + __pyx_t_16 * __pyx_v_u0.strides[0]) ) + __pyx_t_15 * __pyx_v_u0.strides[1]) )) + __pyx_t_14)) )));
/* … */
__pyx_t_14 = 0;
__pyx_t_15 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = 0;
__pyx_t_18 = __pyx_v_j;
__pyx_t_19 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v__u.data + __pyx_t_17 * __pyx_v__u.strides[0]) ) + __pyx_t_18 * __pyx_v__u.strides[1]) )) + __pyx_t_19)) )) = (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u0.data + __pyx_t_14 * __pyx_v_u0.strides[0]) ) + __pyx_t_15 * __pyx_v_u0.strides[1]) )) + __pyx_t_16)) )));
__pyx_t_16 = 1;
__pyx_t_15 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_t_19 = 1;
__pyx_t_18 = __pyx_v_j;
__pyx_t_17 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v__u.data + __pyx_t_19 * __pyx_v__u.strides[0]) ) + __pyx_t_18 * __pyx_v__u.strides[1]) )) + __pyx_t_17)) )) = (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u0.data + __pyx_t_16 * __pyx_v_u0.strides[0]) ) + __pyx_t_15 * __pyx_v_u0.strides[1]) )) + __pyx_t_14)) )));
/* … */
__pyx_t_14 = 0;
__pyx_t_15 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = 0;
__pyx_t_18 = __pyx_v_j;
__pyx_t_19 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v__u.data + __pyx_t_17 * __pyx_v__u.strides[0]) ) + __pyx_t_18 * __pyx_v__u.strides[1]) )) + __pyx_t_19)) )) = (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u0.data + __pyx_t_14 * __pyx_v_u0.strides[0]) ) + __pyx_t_15 * __pyx_v_u0.strides[1]) )) + __pyx_t_16)) )));
__pyx_t_16 = 1;
__pyx_t_15 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_t_19 = 1;
__pyx_t_18 = __pyx_v_j;
__pyx_t_17 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v__u.data + __pyx_t_19 * __pyx_v__u.strides[0]) ) + __pyx_t_18 * __pyx_v__u.strides[1]) )) + __pyx_t_17)) )) = (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u0.data + __pyx_t_16 * __pyx_v_u0.strides[0]) ) + __pyx_t_15 * __pyx_v_u0.strides[1]) )) + __pyx_t_14)) )));
+0780: if W[j, k] > 0.0:
__pyx_t_14 = __pyx_v_j;
__pyx_t_15 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_14 * __pyx_v_W.strides[0]) )) + __pyx_t_15)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
}
}
}
}
}
/* … */
__pyx_t_14 = __pyx_v_j;
__pyx_t_15 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_14 * __pyx_v_W.strides[0]) )) + __pyx_t_15)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
}
}
}
}
}
/* … */
__pyx_t_14 = __pyx_v_j;
__pyx_t_15 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_14 * __pyx_v_W.strides[0]) )) + __pyx_t_15)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
}
}
}
}
}
/* … */
__pyx_t_14 = __pyx_v_j;
__pyx_t_15 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_14 * __pyx_v_W.strides[0]) )) + __pyx_t_15)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
}
}
}
}
}
+0781: pm_rsearcher(I_n, W, I0, r, _u, _derr, di, dj, j, k, sw_y, sw_x,
__pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_pm_rsearcher(__pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_r, __pyx_v__u, __pyx_v__derr, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_n_trials, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_pm_rsearcher(__pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_r, __pyx_v__u, __pyx_v__derr, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_n_trials, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_pm_rsearcher(__pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_r, __pyx_v__u, __pyx_v__derr, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_n_trials, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_pm_rsearcher(__pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_r, __pyx_v__u, __pyx_v__derr, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_n_trials, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
0782: n_trials, ds_y, ds_x, sigma, f)
0783:
+0784: gsl_rng_free(r)
gsl_rng_free(__pyx_v_r);
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
gsl_rng_free(__pyx_v_r);
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
gsl_rng_free(__pyx_v_r);
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
gsl_rng_free(__pyx_v_r);
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
0785:
+0786: gsl_rng_free(r_master)
gsl_rng_free(__pyx_v_r_master); /* … */ gsl_rng_free(__pyx_v_r_master); /* … */ gsl_rng_free(__pyx_v_r_master); /* … */ gsl_rng_free(__pyx_v_r_master);
0787:
+0788: return u, derr
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_v_u)); __Pyx_GIVEREF(((PyObject *)__pyx_v_u)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_u)); __Pyx_INCREF(((PyObject *)__pyx_v_derr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_derr)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_derr)); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_v_u)); __Pyx_GIVEREF(((PyObject *)__pyx_v_u)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_u)); __Pyx_INCREF(((PyObject *)__pyx_v_derr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_derr)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_derr)); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_v_u)); __Pyx_GIVEREF(((PyObject *)__pyx_v_u)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_u)); __Pyx_INCREF(((PyObject *)__pyx_v_derr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_derr)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_derr)); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_v_u)); __Pyx_GIVEREF(((PyObject *)__pyx_v_u)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_u)); __Pyx_INCREF(((PyObject *)__pyx_v_derr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_derr)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_derr)); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
0789:
+0790: cdef void pm_devolver(uint_t[:, :, ::1] I_n, float_t[:, ::1] W, float_t[:, ::1] I0, gsl_rng *r, float_t[:, :, ::1] u,
static void __pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_pm_devolver(__Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, gsl_rng *__pyx_v_r, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_derrs, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, int __pyx_v_j, int __pyx_v_k, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_NP, unsigned int __pyx_v_n_iter, double __pyx_v_CR, double __pyx_v_F, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
double __pyx_v_err0;
double __pyx_v_err;
double __pyx_v_err_min;
int __pyx_v_ii;
int __pyx_v_jj;
CYTHON_UNUSED int __pyx_v_n;
int __pyx_v_a;
int __pyx_v_b;
double __pyx_v_u_min[2];
double __pyx_v_sw[2];
double *__pyx_v_pop;
double *__pyx_v_cost;
double *__pyx_v_new_pop;
/* … */
/* function exit code */
}
static void __pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_pm_devolver(__Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, gsl_rng *__pyx_v_r, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_derrs, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, int __pyx_v_j, int __pyx_v_k, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_NP, unsigned int __pyx_v_n_iter, double __pyx_v_CR, double __pyx_v_F, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
double __pyx_v_err0;
double __pyx_v_err;
double __pyx_v_err_min;
int __pyx_v_ii;
int __pyx_v_jj;
CYTHON_UNUSED int __pyx_v_n;
int __pyx_v_a;
int __pyx_v_b;
double __pyx_v_u_min[2];
double __pyx_v_sw[2];
double *__pyx_v_pop;
double *__pyx_v_cost;
double *__pyx_v_new_pop;
/* … */
/* function exit code */
}
static void __pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_pm_devolver(__Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, gsl_rng *__pyx_v_r, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_derrs, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, int __pyx_v_j, int __pyx_v_k, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_NP, unsigned int __pyx_v_n_iter, double __pyx_v_CR, double __pyx_v_F, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
double __pyx_v_err0;
double __pyx_v_err;
double __pyx_v_err_min;
int __pyx_v_ii;
int __pyx_v_jj;
CYTHON_UNUSED int __pyx_v_n;
int __pyx_v_a;
int __pyx_v_b;
double __pyx_v_u_min[2];
double __pyx_v_sw[2];
double *__pyx_v_pop;
double *__pyx_v_cost;
double *__pyx_v_new_pop;
/* … */
/* function exit code */
}
static void __pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_pm_devolver(__Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, gsl_rng *__pyx_v_r, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_derrs, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, int __pyx_v_j, int __pyx_v_k, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_NP, unsigned int __pyx_v_n_iter, double __pyx_v_CR, double __pyx_v_F, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
double __pyx_v_err0;
double __pyx_v_err;
double __pyx_v_err_min;
int __pyx_v_ii;
int __pyx_v_jj;
CYTHON_UNUSED int __pyx_v_n;
int __pyx_v_a;
int __pyx_v_b;
double __pyx_v_u_min[2];
double __pyx_v_sw[2];
double *__pyx_v_pop;
double *__pyx_v_cost;
double *__pyx_v_new_pop;
/* … */
/* function exit code */
}
0791: float_t[:, ::1] derrs, float_t[::1] di, float_t[::1] dj, int j, int k, double sw_y, double sw_x,
0792: unsigned NP, unsigned n_iter, double CR, double F, double ds_y, double ds_x, double sigma, loss_func f) nogil:
+0793: cdef double err0, err, err_min = FLOAT_MAX
__pyx_v_err_min = 1.7976931348623157e+308; /* … */ __pyx_v_err_min = 1.7976931348623157e+308; /* … */ __pyx_v_err_min = 1.7976931348623157e+308; /* … */ __pyx_v_err_min = 1.7976931348623157e+308;
0794: cdef int ii, jj, n, a, b
0795: cdef double u_min[2]
0796: cdef double sw[2]
+0797: cdef double *pop = <double *>malloc(2 * NP * sizeof(double))
__pyx_v_pop = ((double *)malloc(((2 * __pyx_v_NP) * (sizeof(double))))); /* … */ __pyx_v_pop = ((double *)malloc(((2 * __pyx_v_NP) * (sizeof(double))))); /* … */ __pyx_v_pop = ((double *)malloc(((2 * __pyx_v_NP) * (sizeof(double))))); /* … */ __pyx_v_pop = ((double *)malloc(((2 * __pyx_v_NP) * (sizeof(double)))));
+0798: cdef double *cost = <double *>malloc(NP * sizeof(double))
__pyx_v_cost = ((double *)malloc((__pyx_v_NP * (sizeof(double))))); /* … */ __pyx_v_cost = ((double *)malloc((__pyx_v_NP * (sizeof(double))))); /* … */ __pyx_v_cost = ((double *)malloc((__pyx_v_NP * (sizeof(double))))); /* … */ __pyx_v_cost = ((double *)malloc((__pyx_v_NP * (sizeof(double)))));
+0799: cdef double *new_pop = <double *>malloc(2 * NP * sizeof(double))
__pyx_v_new_pop = ((double *)malloc(((2 * __pyx_v_NP) * (sizeof(double))))); /* … */ __pyx_v_new_pop = ((double *)malloc(((2 * __pyx_v_NP) * (sizeof(double))))); /* … */ __pyx_v_new_pop = ((double *)malloc(((2 * __pyx_v_NP) * (sizeof(double))))); /* … */ __pyx_v_new_pop = ((double *)malloc(((2 * __pyx_v_NP) * (sizeof(double)))));
0800:
+0801: sw[0] = sw_y; sw[1] = sw_x
(__pyx_v_sw[0]) = __pyx_v_sw_y; (__pyx_v_sw[1]) = __pyx_v_sw_x; /* … */ (__pyx_v_sw[0]) = __pyx_v_sw_y; (__pyx_v_sw[1]) = __pyx_v_sw_x; /* … */ (__pyx_v_sw[0]) = __pyx_v_sw_y; (__pyx_v_sw[1]) = __pyx_v_sw_x; /* … */ (__pyx_v_sw[0]) = __pyx_v_sw_y; (__pyx_v_sw[1]) = __pyx_v_sw_x;
+0802: err0 = FVU_interp(I_n, W[j, k], I0, di, dj, j, k, u[0, j, k],
__pyx_t_1 = __pyx_v_j; __pyx_t_2 = __pyx_v_k; __pyx_t_3 = 0; __pyx_t_4 = __pyx_v_j; __pyx_t_5 = __pyx_v_k; /* … */ __pyx_v_err0 = __pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_1 * __pyx_v_W.strides[0]) )) + __pyx_t_2)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_4 * __pyx_v_u.strides[1]) )) + __pyx_t_5)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_8)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f); /* … */ __pyx_t_1 = __pyx_v_j; __pyx_t_2 = __pyx_v_k; __pyx_t_3 = 0; __pyx_t_4 = __pyx_v_j; __pyx_t_5 = __pyx_v_k; /* … */ __pyx_v_err0 = __pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_1 * __pyx_v_W.strides[0]) )) + __pyx_t_2)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_4 * __pyx_v_u.strides[1]) )) + __pyx_t_5)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_8)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f); /* … */ __pyx_t_1 = __pyx_v_j; __pyx_t_2 = __pyx_v_k; __pyx_t_3 = 0; __pyx_t_4 = __pyx_v_j; __pyx_t_5 = __pyx_v_k; /* … */ __pyx_v_err0 = __pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_1 * __pyx_v_W.strides[0]) )) + __pyx_t_2)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_4 * __pyx_v_u.strides[1]) )) + __pyx_t_5)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_8)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f); /* … */ __pyx_t_1 = __pyx_v_j; __pyx_t_2 = __pyx_v_k; __pyx_t_3 = 0; __pyx_t_4 = __pyx_v_j; __pyx_t_5 = __pyx_v_k; /* … */ __pyx_v_err0 = __pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_1 * __pyx_v_W.strides[0]) )) + __pyx_t_2)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_4 * __pyx_v_u.strides[1]) )) + __pyx_t_5)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_8)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
+0803: u[1, j, k], ds_y, ds_x, sigma, f)
__pyx_t_6 = 1; __pyx_t_7 = __pyx_v_j; __pyx_t_8 = __pyx_v_k; /* … */ __pyx_t_6 = 1; __pyx_t_7 = __pyx_v_j; __pyx_t_8 = __pyx_v_k; /* … */ __pyx_t_6 = 1; __pyx_t_7 = __pyx_v_j; __pyx_t_8 = __pyx_v_k; /* … */ __pyx_t_6 = 1; __pyx_t_7 = __pyx_v_j; __pyx_t_8 = __pyx_v_k;
0804:
+0805: for ii in range(<int>NP):
__pyx_t_9 = ((int)__pyx_v_NP);
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_ii = __pyx_t_11;
/* … */
__pyx_t_9 = ((int)__pyx_v_NP);
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_ii = __pyx_t_11;
/* … */
__pyx_t_9 = ((int)__pyx_v_NP);
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_ii = __pyx_t_11;
/* … */
__pyx_t_9 = ((int)__pyx_v_NP);
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_ii = __pyx_t_11;
+0806: pop[2 * ii] = 2.0 * sw_y * (gsl_rng_uniform(r) - 0.5)
(__pyx_v_pop[(2 * __pyx_v_ii)]) = ((2.0 * __pyx_v_sw_y) * (gsl_rng_uniform(__pyx_v_r) - 0.5));
/* … */
(__pyx_v_pop[(2 * __pyx_v_ii)]) = ((2.0 * __pyx_v_sw_y) * (gsl_rng_uniform(__pyx_v_r) - 0.5));
/* … */
(__pyx_v_pop[(2 * __pyx_v_ii)]) = ((2.0 * __pyx_v_sw_y) * (gsl_rng_uniform(__pyx_v_r) - 0.5));
/* … */
(__pyx_v_pop[(2 * __pyx_v_ii)]) = ((2.0 * __pyx_v_sw_y) * (gsl_rng_uniform(__pyx_v_r) - 0.5));
+0807: pop[2 * ii + 1] = 2.0 * sw_x * (gsl_rng_uniform(r) - 0.5)
(__pyx_v_pop[((2 * __pyx_v_ii) + 1)]) = ((2.0 * __pyx_v_sw_x) * (gsl_rng_uniform(__pyx_v_r) - 0.5));
/* … */
(__pyx_v_pop[((2 * __pyx_v_ii) + 1)]) = ((2.0 * __pyx_v_sw_x) * (gsl_rng_uniform(__pyx_v_r) - 0.5));
/* … */
(__pyx_v_pop[((2 * __pyx_v_ii) + 1)]) = ((2.0 * __pyx_v_sw_x) * (gsl_rng_uniform(__pyx_v_r) - 0.5));
/* … */
(__pyx_v_pop[((2 * __pyx_v_ii) + 1)]) = ((2.0 * __pyx_v_sw_x) * (gsl_rng_uniform(__pyx_v_r) - 0.5));
0808:
+0809: cost[ii] = FVU_interp(I_n, W[j, k], I0, di, dj, j, k, u[0, j, k] + pop[2 * ii],
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_j;
__pyx_t_4 = __pyx_v_k;
/* … */
(__pyx_v_cost[__pyx_v_ii]) = __pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_8 * __pyx_v_W.strides[0]) )) + __pyx_t_7)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_5 * __pyx_v_u.strides[1]) )) + __pyx_t_4)) ))) + (__pyx_v_pop[(2 * __pyx_v_ii)])), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_1)) ))) + (__pyx_v_pop[((2 * __pyx_v_ii) + 1)])), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_j;
__pyx_t_4 = __pyx_v_k;
/* … */
(__pyx_v_cost[__pyx_v_ii]) = __pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_8 * __pyx_v_W.strides[0]) )) + __pyx_t_7)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_5 * __pyx_v_u.strides[1]) )) + __pyx_t_4)) ))) + (__pyx_v_pop[(2 * __pyx_v_ii)])), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_1)) ))) + (__pyx_v_pop[((2 * __pyx_v_ii) + 1)])), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_j;
__pyx_t_4 = __pyx_v_k;
/* … */
(__pyx_v_cost[__pyx_v_ii]) = __pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_8 * __pyx_v_W.strides[0]) )) + __pyx_t_7)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_5 * __pyx_v_u.strides[1]) )) + __pyx_t_4)) ))) + (__pyx_v_pop[(2 * __pyx_v_ii)])), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_1)) ))) + (__pyx_v_pop[((2 * __pyx_v_ii) + 1)])), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_t_6 = 0;
__pyx_t_5 = __pyx_v_j;
__pyx_t_4 = __pyx_v_k;
/* … */
(__pyx_v_cost[__pyx_v_ii]) = __pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_8 * __pyx_v_W.strides[0]) )) + __pyx_t_7)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_5 * __pyx_v_u.strides[1]) )) + __pyx_t_4)) ))) + (__pyx_v_pop[(2 * __pyx_v_ii)])), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_2 * __pyx_v_u.strides[1]) )) + __pyx_t_1)) ))) + (__pyx_v_pop[((2 * __pyx_v_ii) + 1)])), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
+0810: u[1, j, k] + pop[2 * ii + 1], ds_y, ds_x, sigma, f)
__pyx_t_3 = 1;
__pyx_t_2 = __pyx_v_j;
__pyx_t_1 = __pyx_v_k;
/* … */
__pyx_t_3 = 1;
__pyx_t_2 = __pyx_v_j;
__pyx_t_1 = __pyx_v_k;
/* … */
__pyx_t_3 = 1;
__pyx_t_2 = __pyx_v_j;
__pyx_t_1 = __pyx_v_k;
/* … */
__pyx_t_3 = 1;
__pyx_t_2 = __pyx_v_j;
__pyx_t_1 = __pyx_v_k;
0811:
+0812: if cost[ii] < err_min:
__pyx_t_12 = (((__pyx_v_cost[__pyx_v_ii]) < __pyx_v_err_min) != 0);
if (__pyx_t_12) {
/* … */
}
}
/* … */
__pyx_t_12 = (((__pyx_v_cost[__pyx_v_ii]) < __pyx_v_err_min) != 0);
if (__pyx_t_12) {
/* … */
}
}
/* … */
__pyx_t_12 = (((__pyx_v_cost[__pyx_v_ii]) < __pyx_v_err_min) != 0);
if (__pyx_t_12) {
/* … */
}
}
/* … */
__pyx_t_12 = (((__pyx_v_cost[__pyx_v_ii]) < __pyx_v_err_min) != 0);
if (__pyx_t_12) {
/* … */
}
}
+0813: u_min[0] = pop[2 * ii]; u_min[1] = pop[2 * ii + 1]; err_min = cost[ii]
(__pyx_v_u_min[0]) = (__pyx_v_pop[(2 * __pyx_v_ii)]);
(__pyx_v_u_min[1]) = (__pyx_v_pop[((2 * __pyx_v_ii) + 1)]);
__pyx_v_err_min = (__pyx_v_cost[__pyx_v_ii]);
/* … */
(__pyx_v_u_min[0]) = (__pyx_v_pop[(2 * __pyx_v_ii)]);
(__pyx_v_u_min[1]) = (__pyx_v_pop[((2 * __pyx_v_ii) + 1)]);
__pyx_v_err_min = (__pyx_v_cost[__pyx_v_ii]);
/* … */
(__pyx_v_u_min[0]) = (__pyx_v_pop[(2 * __pyx_v_ii)]);
(__pyx_v_u_min[1]) = (__pyx_v_pop[((2 * __pyx_v_ii) + 1)]);
__pyx_v_err_min = (__pyx_v_cost[__pyx_v_ii]);
/* … */
(__pyx_v_u_min[0]) = (__pyx_v_pop[(2 * __pyx_v_ii)]);
(__pyx_v_u_min[1]) = (__pyx_v_pop[((2 * __pyx_v_ii) + 1)]);
__pyx_v_err_min = (__pyx_v_cost[__pyx_v_ii]);
0814:
+0815: for n in range(<int>n_iter):
__pyx_t_9 = ((int)__pyx_v_n_iter);
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_n = __pyx_t_11;
/* … */
__pyx_t_9 = ((int)__pyx_v_n_iter);
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_n = __pyx_t_11;
/* … */
__pyx_t_9 = ((int)__pyx_v_n_iter);
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_n = __pyx_t_11;
/* … */
__pyx_t_9 = ((int)__pyx_v_n_iter);
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_n = __pyx_t_11;
+0816: for ii in range(<int>NP):
__pyx_t_13 = ((int)__pyx_v_NP);
__pyx_t_14 = __pyx_t_13;
for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
__pyx_v_ii = __pyx_t_15;
/* … */
__pyx_t_13 = ((int)__pyx_v_NP);
__pyx_t_14 = __pyx_t_13;
for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
__pyx_v_ii = __pyx_t_15;
/* … */
__pyx_t_13 = ((int)__pyx_v_NP);
__pyx_t_14 = __pyx_t_13;
for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
__pyx_v_ii = __pyx_t_15;
/* … */
__pyx_t_13 = ((int)__pyx_v_NP);
__pyx_t_14 = __pyx_t_13;
for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
__pyx_v_ii = __pyx_t_15;
+0817: a = gsl_rng_uniform_int(r, NP)
__pyx_v_a = gsl_rng_uniform_int(__pyx_v_r, __pyx_v_NP);
/* … */
__pyx_v_a = gsl_rng_uniform_int(__pyx_v_r, __pyx_v_NP);
/* … */
__pyx_v_a = gsl_rng_uniform_int(__pyx_v_r, __pyx_v_NP);
/* … */
__pyx_v_a = gsl_rng_uniform_int(__pyx_v_r, __pyx_v_NP);
+0818: while a == ii:
while (1) {
__pyx_t_12 = ((__pyx_v_a == __pyx_v_ii) != 0);
if (!__pyx_t_12) break;
/* … */
while (1) {
__pyx_t_12 = ((__pyx_v_a == __pyx_v_ii) != 0);
if (!__pyx_t_12) break;
/* … */
while (1) {
__pyx_t_12 = ((__pyx_v_a == __pyx_v_ii) != 0);
if (!__pyx_t_12) break;
/* … */
while (1) {
__pyx_t_12 = ((__pyx_v_a == __pyx_v_ii) != 0);
if (!__pyx_t_12) break;
+0819: a = gsl_rng_uniform_int(r, NP)
__pyx_v_a = gsl_rng_uniform_int(__pyx_v_r, __pyx_v_NP);
}
/* … */
__pyx_v_a = gsl_rng_uniform_int(__pyx_v_r, __pyx_v_NP);
}
/* … */
__pyx_v_a = gsl_rng_uniform_int(__pyx_v_r, __pyx_v_NP);
}
/* … */
__pyx_v_a = gsl_rng_uniform_int(__pyx_v_r, __pyx_v_NP);
}
0820:
+0821: b = gsl_rng_uniform_int(r, NP)
__pyx_v_b = gsl_rng_uniform_int(__pyx_v_r, __pyx_v_NP);
/* … */
__pyx_v_b = gsl_rng_uniform_int(__pyx_v_r, __pyx_v_NP);
/* … */
__pyx_v_b = gsl_rng_uniform_int(__pyx_v_r, __pyx_v_NP);
/* … */
__pyx_v_b = gsl_rng_uniform_int(__pyx_v_r, __pyx_v_NP);
+0822: while b == ii or b == a:
while (1) {
__pyx_t_16 = ((__pyx_v_b == __pyx_v_ii) != 0);
if (!__pyx_t_16) {
} else {
__pyx_t_12 = __pyx_t_16;
goto __pyx_L14_bool_binop_done;
}
__pyx_t_16 = ((__pyx_v_b == __pyx_v_a) != 0);
__pyx_t_12 = __pyx_t_16;
__pyx_L14_bool_binop_done:;
if (!__pyx_t_12) break;
/* … */
while (1) {
__pyx_t_16 = ((__pyx_v_b == __pyx_v_ii) != 0);
if (!__pyx_t_16) {
} else {
__pyx_t_12 = __pyx_t_16;
goto __pyx_L14_bool_binop_done;
}
__pyx_t_16 = ((__pyx_v_b == __pyx_v_a) != 0);
__pyx_t_12 = __pyx_t_16;
__pyx_L14_bool_binop_done:;
if (!__pyx_t_12) break;
/* … */
while (1) {
__pyx_t_16 = ((__pyx_v_b == __pyx_v_ii) != 0);
if (!__pyx_t_16) {
} else {
__pyx_t_12 = __pyx_t_16;
goto __pyx_L14_bool_binop_done;
}
__pyx_t_16 = ((__pyx_v_b == __pyx_v_a) != 0);
__pyx_t_12 = __pyx_t_16;
__pyx_L14_bool_binop_done:;
if (!__pyx_t_12) break;
/* … */
while (1) {
__pyx_t_16 = ((__pyx_v_b == __pyx_v_ii) != 0);
if (!__pyx_t_16) {
} else {
__pyx_t_12 = __pyx_t_16;
goto __pyx_L14_bool_binop_done;
}
__pyx_t_16 = ((__pyx_v_b == __pyx_v_a) != 0);
__pyx_t_12 = __pyx_t_16;
__pyx_L14_bool_binop_done:;
if (!__pyx_t_12) break;
+0823: b = gsl_rng_uniform_int(r, NP)
__pyx_v_b = gsl_rng_uniform_int(__pyx_v_r, __pyx_v_NP);
}
/* … */
__pyx_v_b = gsl_rng_uniform_int(__pyx_v_r, __pyx_v_NP);
}
/* … */
__pyx_v_b = gsl_rng_uniform_int(__pyx_v_r, __pyx_v_NP);
}
/* … */
__pyx_v_b = gsl_rng_uniform_int(__pyx_v_r, __pyx_v_NP);
}
0824:
+0825: jj = gsl_rng_uniform_int(r, 2)
__pyx_v_jj = gsl_rng_uniform_int(__pyx_v_r, 2);
/* … */
__pyx_v_jj = gsl_rng_uniform_int(__pyx_v_r, 2);
/* … */
__pyx_v_jj = gsl_rng_uniform_int(__pyx_v_r, 2);
/* … */
__pyx_v_jj = gsl_rng_uniform_int(__pyx_v_r, 2);
+0826: if gsl_rng_uniform(r) < CR:
__pyx_t_12 = ((gsl_rng_uniform(__pyx_v_r) < __pyx_v_CR) != 0);
if (__pyx_t_12) {
/* … */
goto __pyx_L16;
}
/* … */
__pyx_t_12 = ((gsl_rng_uniform(__pyx_v_r) < __pyx_v_CR) != 0);
if (__pyx_t_12) {
/* … */
goto __pyx_L16;
}
/* … */
__pyx_t_12 = ((gsl_rng_uniform(__pyx_v_r) < __pyx_v_CR) != 0);
if (__pyx_t_12) {
/* … */
goto __pyx_L16;
}
/* … */
__pyx_t_12 = ((gsl_rng_uniform(__pyx_v_r) < __pyx_v_CR) != 0);
if (__pyx_t_12) {
/* … */
goto __pyx_L16;
}
+0827: new_pop[2 * ii + jj] = u_min[jj] + F * (pop[2 * a + jj] - pop[2 * b + jj])
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = ((__pyx_v_u_min[__pyx_v_jj]) + (__pyx_v_F * ((__pyx_v_pop[((2 * __pyx_v_a) + __pyx_v_jj)]) - (__pyx_v_pop[((2 * __pyx_v_b) + __pyx_v_jj)]))));
/* … */
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = ((__pyx_v_u_min[__pyx_v_jj]) + (__pyx_v_F * ((__pyx_v_pop[((2 * __pyx_v_a) + __pyx_v_jj)]) - (__pyx_v_pop[((2 * __pyx_v_b) + __pyx_v_jj)]))));
/* … */
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = ((__pyx_v_u_min[__pyx_v_jj]) + (__pyx_v_F * ((__pyx_v_pop[((2 * __pyx_v_a) + __pyx_v_jj)]) - (__pyx_v_pop[((2 * __pyx_v_b) + __pyx_v_jj)]))));
/* … */
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = ((__pyx_v_u_min[__pyx_v_jj]) + (__pyx_v_F * ((__pyx_v_pop[((2 * __pyx_v_a) + __pyx_v_jj)]) - (__pyx_v_pop[((2 * __pyx_v_b) + __pyx_v_jj)]))));
+0828: if new_pop[2 * ii + jj] > sw[jj]: new_pop[2 * ii + jj] = sw[jj]
__pyx_t_12 = (((__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) > (__pyx_v_sw[__pyx_v_jj])) != 0);
if (__pyx_t_12) {
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = (__pyx_v_sw[__pyx_v_jj]);
}
/* … */
__pyx_t_12 = (((__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) > (__pyx_v_sw[__pyx_v_jj])) != 0);
if (__pyx_t_12) {
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = (__pyx_v_sw[__pyx_v_jj]);
}
/* … */
__pyx_t_12 = (((__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) > (__pyx_v_sw[__pyx_v_jj])) != 0);
if (__pyx_t_12) {
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = (__pyx_v_sw[__pyx_v_jj]);
}
/* … */
__pyx_t_12 = (((__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) > (__pyx_v_sw[__pyx_v_jj])) != 0);
if (__pyx_t_12) {
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = (__pyx_v_sw[__pyx_v_jj]);
}
+0829: if new_pop[2 * ii + jj] < -sw[jj]: new_pop[2 * ii + jj] = -sw[jj]
__pyx_t_12 = (((__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) < (-(__pyx_v_sw[__pyx_v_jj]))) != 0);
if (__pyx_t_12) {
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = (-(__pyx_v_sw[__pyx_v_jj]));
}
/* … */
__pyx_t_12 = (((__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) < (-(__pyx_v_sw[__pyx_v_jj]))) != 0);
if (__pyx_t_12) {
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = (-(__pyx_v_sw[__pyx_v_jj]));
}
/* … */
__pyx_t_12 = (((__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) < (-(__pyx_v_sw[__pyx_v_jj]))) != 0);
if (__pyx_t_12) {
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = (-(__pyx_v_sw[__pyx_v_jj]));
}
/* … */
__pyx_t_12 = (((__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) < (-(__pyx_v_sw[__pyx_v_jj]))) != 0);
if (__pyx_t_12) {
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = (-(__pyx_v_sw[__pyx_v_jj]));
}
0830: else:
+0831: new_pop[2 * ii + jj] = pop[2 * ii + jj]
/*else*/ {
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = (__pyx_v_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]);
}
__pyx_L16:;
/* … */
/*else*/ {
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = (__pyx_v_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]);
}
__pyx_L16:;
/* … */
/*else*/ {
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = (__pyx_v_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]);
}
__pyx_L16:;
/* … */
/*else*/ {
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = (__pyx_v_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]);
}
__pyx_L16:;
+0832: jj = (jj + 1) % 2
__pyx_v_jj = ((__pyx_v_jj + 1) % 2);
/* … */
__pyx_v_jj = ((__pyx_v_jj + 1) % 2);
/* … */
__pyx_v_jj = ((__pyx_v_jj + 1) % 2);
/* … */
__pyx_v_jj = ((__pyx_v_jj + 1) % 2);
+0833: new_pop[2 * ii + jj] = u_min[jj] + F * (pop[2 * a + jj] - pop[2 * b + jj])
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = ((__pyx_v_u_min[__pyx_v_jj]) + (__pyx_v_F * ((__pyx_v_pop[((2 * __pyx_v_a) + __pyx_v_jj)]) - (__pyx_v_pop[((2 * __pyx_v_b) + __pyx_v_jj)]))));
/* … */
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = ((__pyx_v_u_min[__pyx_v_jj]) + (__pyx_v_F * ((__pyx_v_pop[((2 * __pyx_v_a) + __pyx_v_jj)]) - (__pyx_v_pop[((2 * __pyx_v_b) + __pyx_v_jj)]))));
/* … */
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = ((__pyx_v_u_min[__pyx_v_jj]) + (__pyx_v_F * ((__pyx_v_pop[((2 * __pyx_v_a) + __pyx_v_jj)]) - (__pyx_v_pop[((2 * __pyx_v_b) + __pyx_v_jj)]))));
/* … */
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = ((__pyx_v_u_min[__pyx_v_jj]) + (__pyx_v_F * ((__pyx_v_pop[((2 * __pyx_v_a) + __pyx_v_jj)]) - (__pyx_v_pop[((2 * __pyx_v_b) + __pyx_v_jj)]))));
+0834: if new_pop[2 * ii + jj] > sw[jj]: new_pop[2 * ii + jj] = sw[jj]
__pyx_t_12 = (((__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) > (__pyx_v_sw[__pyx_v_jj])) != 0);
if (__pyx_t_12) {
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = (__pyx_v_sw[__pyx_v_jj]);
}
/* … */
__pyx_t_12 = (((__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) > (__pyx_v_sw[__pyx_v_jj])) != 0);
if (__pyx_t_12) {
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = (__pyx_v_sw[__pyx_v_jj]);
}
/* … */
__pyx_t_12 = (((__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) > (__pyx_v_sw[__pyx_v_jj])) != 0);
if (__pyx_t_12) {
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = (__pyx_v_sw[__pyx_v_jj]);
}
/* … */
__pyx_t_12 = (((__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) > (__pyx_v_sw[__pyx_v_jj])) != 0);
if (__pyx_t_12) {
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = (__pyx_v_sw[__pyx_v_jj]);
}
+0835: if new_pop[2 * ii + jj] < -sw[jj]: new_pop[2 * ii + jj] = -sw[jj]
__pyx_t_12 = (((__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) < (-(__pyx_v_sw[__pyx_v_jj]))) != 0);
if (__pyx_t_12) {
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = (-(__pyx_v_sw[__pyx_v_jj]));
}
/* … */
__pyx_t_12 = (((__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) < (-(__pyx_v_sw[__pyx_v_jj]))) != 0);
if (__pyx_t_12) {
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = (-(__pyx_v_sw[__pyx_v_jj]));
}
/* … */
__pyx_t_12 = (((__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) < (-(__pyx_v_sw[__pyx_v_jj]))) != 0);
if (__pyx_t_12) {
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = (-(__pyx_v_sw[__pyx_v_jj]));
}
/* … */
__pyx_t_12 = (((__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) < (-(__pyx_v_sw[__pyx_v_jj]))) != 0);
if (__pyx_t_12) {
(__pyx_v_new_pop[((2 * __pyx_v_ii) + __pyx_v_jj)]) = (-(__pyx_v_sw[__pyx_v_jj]));
}
0836:
+0837: err = FVU_interp(I_n, W[j, k], I0, di, dj, j, k, u[0, j, k] + new_pop[2 * ii],
__pyx_t_1 = __pyx_v_j;
__pyx_t_2 = __pyx_v_k;
__pyx_t_3 = 0;
__pyx_t_4 = __pyx_v_j;
__pyx_t_5 = __pyx_v_k;
/* … */
__pyx_v_err = __pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_1 * __pyx_v_W.strides[0]) )) + __pyx_t_2)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_4 * __pyx_v_u.strides[1]) )) + __pyx_t_5)) ))) + (__pyx_v_new_pop[(2 * __pyx_v_ii)])), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_8)) ))) + (__pyx_v_new_pop[((2 * __pyx_v_ii) + 1)])), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_t_1 = __pyx_v_j;
__pyx_t_2 = __pyx_v_k;
__pyx_t_3 = 0;
__pyx_t_4 = __pyx_v_j;
__pyx_t_5 = __pyx_v_k;
/* … */
__pyx_v_err = __pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_1 * __pyx_v_W.strides[0]) )) + __pyx_t_2)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_4 * __pyx_v_u.strides[1]) )) + __pyx_t_5)) ))) + (__pyx_v_new_pop[(2 * __pyx_v_ii)])), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_8)) ))) + (__pyx_v_new_pop[((2 * __pyx_v_ii) + 1)])), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_t_1 = __pyx_v_j;
__pyx_t_2 = __pyx_v_k;
__pyx_t_3 = 0;
__pyx_t_4 = __pyx_v_j;
__pyx_t_5 = __pyx_v_k;
/* … */
__pyx_v_err = __pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_1 * __pyx_v_W.strides[0]) )) + __pyx_t_2)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_4 * __pyx_v_u.strides[1]) )) + __pyx_t_5)) ))) + (__pyx_v_new_pop[(2 * __pyx_v_ii)])), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_8)) ))) + (__pyx_v_new_pop[((2 * __pyx_v_ii) + 1)])), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_t_1 = __pyx_v_j;
__pyx_t_2 = __pyx_v_k;
__pyx_t_3 = 0;
__pyx_t_4 = __pyx_v_j;
__pyx_t_5 = __pyx_v_k;
/* … */
__pyx_v_err = __pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_1 * __pyx_v_W.strides[0]) )) + __pyx_t_2)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_3 * __pyx_v_u.strides[0]) ) + __pyx_t_4 * __pyx_v_u.strides[1]) )) + __pyx_t_5)) ))) + (__pyx_v_new_pop[(2 * __pyx_v_ii)])), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_8)) ))) + (__pyx_v_new_pop[((2 * __pyx_v_ii) + 1)])), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
+0838: u[1, j, k] + new_pop[2 * ii + 1], ds_y, ds_x, sigma, f)
__pyx_t_6 = 1;
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
/* … */
__pyx_t_6 = 1;
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
/* … */
__pyx_t_6 = 1;
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
/* … */
__pyx_t_6 = 1;
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
0839:
+0840: if err < cost[ii]:
__pyx_t_12 = ((__pyx_v_err < (__pyx_v_cost[__pyx_v_ii])) != 0);
if (__pyx_t_12) {
/* … */
goto __pyx_L21;
}
/* … */
__pyx_t_12 = ((__pyx_v_err < (__pyx_v_cost[__pyx_v_ii])) != 0);
if (__pyx_t_12) {
/* … */
goto __pyx_L21;
}
/* … */
__pyx_t_12 = ((__pyx_v_err < (__pyx_v_cost[__pyx_v_ii])) != 0);
if (__pyx_t_12) {
/* … */
goto __pyx_L21;
}
/* … */
__pyx_t_12 = ((__pyx_v_err < (__pyx_v_cost[__pyx_v_ii])) != 0);
if (__pyx_t_12) {
/* … */
goto __pyx_L21;
}
+0841: cost[ii] = err
(__pyx_v_cost[__pyx_v_ii]) = __pyx_v_err;
/* … */
(__pyx_v_cost[__pyx_v_ii]) = __pyx_v_err;
/* … */
(__pyx_v_cost[__pyx_v_ii]) = __pyx_v_err;
/* … */
(__pyx_v_cost[__pyx_v_ii]) = __pyx_v_err;
+0842: if err < err_min:
__pyx_t_12 = ((__pyx_v_err < __pyx_v_err_min) != 0);
if (__pyx_t_12) {
/* … */
}
/* … */
__pyx_t_12 = ((__pyx_v_err < __pyx_v_err_min) != 0);
if (__pyx_t_12) {
/* … */
}
/* … */
__pyx_t_12 = ((__pyx_v_err < __pyx_v_err_min) != 0);
if (__pyx_t_12) {
/* … */
}
/* … */
__pyx_t_12 = ((__pyx_v_err < __pyx_v_err_min) != 0);
if (__pyx_t_12) {
/* … */
}
+0843: u_min[0] = new_pop[2 * ii]; u_min[1] = new_pop[2 * ii + 1]; err_min = err
(__pyx_v_u_min[0]) = (__pyx_v_new_pop[(2 * __pyx_v_ii)]);
(__pyx_v_u_min[1]) = (__pyx_v_new_pop[((2 * __pyx_v_ii) + 1)]);
__pyx_v_err_min = __pyx_v_err;
/* … */
(__pyx_v_u_min[0]) = (__pyx_v_new_pop[(2 * __pyx_v_ii)]);
(__pyx_v_u_min[1]) = (__pyx_v_new_pop[((2 * __pyx_v_ii) + 1)]);
__pyx_v_err_min = __pyx_v_err;
/* … */
(__pyx_v_u_min[0]) = (__pyx_v_new_pop[(2 * __pyx_v_ii)]);
(__pyx_v_u_min[1]) = (__pyx_v_new_pop[((2 * __pyx_v_ii) + 1)]);
__pyx_v_err_min = __pyx_v_err;
/* … */
(__pyx_v_u_min[0]) = (__pyx_v_new_pop[(2 * __pyx_v_ii)]);
(__pyx_v_u_min[1]) = (__pyx_v_new_pop[((2 * __pyx_v_ii) + 1)]);
__pyx_v_err_min = __pyx_v_err;
0844: else:
+0845: new_pop[2 * ii] = pop[2 * ii]; new_pop[2 * ii + 1] = pop[2 * ii + 1]
/*else*/ {
(__pyx_v_new_pop[(2 * __pyx_v_ii)]) = (__pyx_v_pop[(2 * __pyx_v_ii)]);
(__pyx_v_new_pop[((2 * __pyx_v_ii) + 1)]) = (__pyx_v_pop[((2 * __pyx_v_ii) + 1)]);
}
__pyx_L21:;
}
/* … */
/*else*/ {
(__pyx_v_new_pop[(2 * __pyx_v_ii)]) = (__pyx_v_pop[(2 * __pyx_v_ii)]);
(__pyx_v_new_pop[((2 * __pyx_v_ii) + 1)]) = (__pyx_v_pop[((2 * __pyx_v_ii) + 1)]);
}
__pyx_L21:;
}
/* … */
/*else*/ {
(__pyx_v_new_pop[(2 * __pyx_v_ii)]) = (__pyx_v_pop[(2 * __pyx_v_ii)]);
(__pyx_v_new_pop[((2 * __pyx_v_ii) + 1)]) = (__pyx_v_pop[((2 * __pyx_v_ii) + 1)]);
}
__pyx_L21:;
}
/* … */
/*else*/ {
(__pyx_v_new_pop[(2 * __pyx_v_ii)]) = (__pyx_v_pop[(2 * __pyx_v_ii)]);
(__pyx_v_new_pop[((2 * __pyx_v_ii) + 1)]) = (__pyx_v_pop[((2 * __pyx_v_ii) + 1)]);
}
__pyx_L21:;
}
0846:
+0847: for ii in range(2 * <int>NP):
__pyx_t_17 = (2 * ((int)__pyx_v_NP));
__pyx_t_18 = __pyx_t_17;
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_18; __pyx_t_13+=1) {
__pyx_v_ii = __pyx_t_13;
/* … */
__pyx_t_17 = (2 * ((int)__pyx_v_NP));
__pyx_t_18 = __pyx_t_17;
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_18; __pyx_t_13+=1) {
__pyx_v_ii = __pyx_t_13;
/* … */
__pyx_t_17 = (2 * ((int)__pyx_v_NP));
__pyx_t_18 = __pyx_t_17;
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_18; __pyx_t_13+=1) {
__pyx_v_ii = __pyx_t_13;
/* … */
__pyx_t_17 = (2 * ((int)__pyx_v_NP));
__pyx_t_18 = __pyx_t_17;
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_18; __pyx_t_13+=1) {
__pyx_v_ii = __pyx_t_13;
+0848: pop[ii] = new_pop[ii]
(__pyx_v_pop[__pyx_v_ii]) = (__pyx_v_new_pop[__pyx_v_ii]);
}
}
/* … */
(__pyx_v_pop[__pyx_v_ii]) = (__pyx_v_new_pop[__pyx_v_ii]);
}
}
/* … */
(__pyx_v_pop[__pyx_v_ii]) = (__pyx_v_new_pop[__pyx_v_ii]);
}
}
/* … */
(__pyx_v_pop[__pyx_v_ii]) = (__pyx_v_new_pop[__pyx_v_ii]);
}
}
0849:
+0850: free(pop); free(new_pop); free(cost)
free(__pyx_v_pop); free(__pyx_v_new_pop); free(__pyx_v_cost); /* … */ free(__pyx_v_pop); free(__pyx_v_new_pop); free(__pyx_v_cost); /* … */ free(__pyx_v_pop); free(__pyx_v_new_pop); free(__pyx_v_cost); /* … */ free(__pyx_v_pop); free(__pyx_v_new_pop); free(__pyx_v_cost);
0851:
+0852: u[0, j, k] += u_min[0]; u[1, j, k] += u_min[1]
__pyx_t_8 = 0; __pyx_t_7 = __pyx_v_j; __pyx_t_6 = __pyx_v_k; *((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_8 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) )) += (__pyx_v_u_min[0]); __pyx_t_6 = 1; __pyx_t_7 = __pyx_v_j; __pyx_t_8 = __pyx_v_k; *((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_8)) )) += (__pyx_v_u_min[1]); /* … */ __pyx_t_8 = 0; __pyx_t_7 = __pyx_v_j; __pyx_t_6 = __pyx_v_k; *((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_8 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) )) += (__pyx_v_u_min[0]); __pyx_t_6 = 1; __pyx_t_7 = __pyx_v_j; __pyx_t_8 = __pyx_v_k; *((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_8)) )) += (__pyx_v_u_min[1]); /* … */ __pyx_t_8 = 0; __pyx_t_7 = __pyx_v_j; __pyx_t_6 = __pyx_v_k; *((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_8 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) )) += (__pyx_v_u_min[0]); __pyx_t_6 = 1; __pyx_t_7 = __pyx_v_j; __pyx_t_8 = __pyx_v_k; *((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_8)) )) += (__pyx_v_u_min[1]); /* … */ __pyx_t_8 = 0; __pyx_t_7 = __pyx_v_j; __pyx_t_6 = __pyx_v_k; *((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_8 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_6)) )) += (__pyx_v_u_min[0]); __pyx_t_6 = 1; __pyx_t_7 = __pyx_v_j; __pyx_t_8 = __pyx_v_k; *((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_6 * __pyx_v_u.strides[0]) ) + __pyx_t_7 * __pyx_v_u.strides[1]) )) + __pyx_t_8)) )) += (__pyx_v_u_min[1]);
+0853: derrs[j, k] = err0 - err_min if err_min < err0 else 0.0
if (((__pyx_v_err_min < __pyx_v_err0) != 0)) {
__pyx_t_19 = (__pyx_v_err0 - __pyx_v_err_min);
} else {
__pyx_t_19 = 0.0;
}
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_derrs.data + __pyx_t_8 * __pyx_v_derrs.strides[0]) )) + __pyx_t_7)) )) = __pyx_t_19;
/* … */
if (((__pyx_v_err_min < __pyx_v_err0) != 0)) {
__pyx_t_19 = (__pyx_v_err0 - __pyx_v_err_min);
} else {
__pyx_t_19 = 0.0;
}
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_derrs.data + __pyx_t_8 * __pyx_v_derrs.strides[0]) )) + __pyx_t_7)) )) = __pyx_t_19;
/* … */
if (((__pyx_v_err_min < __pyx_v_err0) != 0)) {
__pyx_t_19 = (__pyx_v_err0 - __pyx_v_err_min);
} else {
__pyx_t_19 = 0.0;
}
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_derrs.data + __pyx_t_8 * __pyx_v_derrs.strides[0]) )) + __pyx_t_7)) )) = __pyx_t_19;
/* … */
if (((__pyx_v_err_min < __pyx_v_err0) != 0)) {
__pyx_t_19 = (__pyx_v_err0 - __pyx_v_err_min);
} else {
__pyx_t_19 = 0.0;
}
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_derrs.data + __pyx_t_8 * __pyx_v_derrs.strides[0]) )) + __pyx_t_7)) )) = __pyx_t_19;
0854:
+0855: def pm_devolution(uint_t[:, :, ::1] I_n not None, float_t[:, ::1] W not None, float_t[:, ::1] I0 not None,
/* Python wrapper */
static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_9pm_devolution(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6pyrost_3bin_6pyrost_8pm_devolution[] = "Update the pixel mapping by minimizing mean-squared-error (MSE). Perform\n a differential evolution within the search window of `sw_y`, `sw_x` size along\n the vertical and fast axes accordingly in order to minimize the MSE at each\n point of the detector grid separately.\n\n Args:\n I_n (numpy.ndarray) : Measured intensity frames.\n W (numpy.ndarray) : Measured frames' whitefield.\n I0 (numpy.ndarray) : Reference image of the sample.\n u (numpy.ndarray) : The discrete geometrical mapping of the detector\n plane to the reference image.\n di (numpy.ndarray) : Initial sample's translations along the vertical\n detector axis in pixels.\n dj (numpy.ndarray) : Initial sample's translations along the horizontal\n detector axis in pixels.\n sw_y (float) : Search window size in pixels along the vertical detector\n axis.\n sw_x (float) : Search window size in pixels along the horizontal detector\n axis.\n pop_size (int) : The total population size. Must be greater or equal to 4.\n n_iter (int) : The maximum number of generations over which the entire\n population is evolved.\n seed (int) : Specify seed for the random number generation.\n ds_y (float) : Sampling interval of reference image in pixels along the\n vertical axis.\n ds_x (float) : Sampling interval of reference image in pixels along the\n horizontal axis.\n sigma (float) : The standard deviation of `I_n`.\n F (float) : The mutation constant. In the literature this is also known as\n differential weight. If specified as a float it should be in the\n range [0, 2].\n CR (float) : The recombination constant, should be in the range [0, 1]. In\n the literature this is also known as the crossover probability.\n loss (str) : Choose between the following loss functions:\n""\n * 'Epsilon': Epsilon loss function (epsilon = 0.5)\n * 'Huber' : Huber loss function (k = 1.345)\n * 'L1' : L1 norm loss function.\n * 'L2' : L2 norm loss function.\n\n num_threads (int) : Number of threads.\n\n Returns:\n Tuple[numpy.ndarray, numpy.ndarray] : A tuple of two elements ('u', 'derr').\n The elements are the following:\n\n * 'u' : Updated pixel mapping array.\n * 'derr' : Error decrease for each pixel in the detector grid.\n\n Notes:\n The error metric as a function of pixel mapping displacements\n is given by:\n\n .. math::\n\n \\varepsilon_{pm}[i, j, i^{\\prime}, j^{\\prime}] = \\frac{1}{N}\n \\sum_{n = 0}^N f\\left( \\frac{I[n, i, j] - W[i, j]\n I_{ref}[u[0, i, j] + i^{\\prime} - di[n],\n u[1, i, j] + j^{\\prime} - dj[n]]}{\\sigma} \\right)\n\n where :math:`f(x)` is L1 norm, L2 norm or Huber loss function.\n ";
static PyMethodDef __pyx_mdef_6pyrost_3bin_6pyrost_9pm_devolution = {"pm_devolution", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pyrost_3bin_6pyrost_9pm_devolution, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_8pm_devolution};
static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_9pm_devolution(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_signatures = 0;
PyObject *__pyx_v_args = 0;
PyObject *__pyx_v_kwargs = 0;
CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
PyObject* values[4] = {0,0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 855, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 855, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
}
__pyx_v_signatures = values[0];
__pyx_v_args = values[1];
__pyx_v_kwargs = values[2];
__pyx_v_defaults = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 855, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_8pm_devolution(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_8pm_devolution(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
PyObject *__pyx_v_dest_sig = NULL;
Py_ssize_t __pyx_v_i;
PyTypeObject *__pyx_v_ndarray = 0;
__Pyx_memviewslice __pyx_v_memslice;
Py_ssize_t __pyx_v_itemsize;
int __pyx_v_dtype_signed;
char __pyx_v_kind;
int __pyx_v____pyx_uint64_t_is_signed;
int __pyx_v____pyx_uint32_t_is_signed;
PyObject *__pyx_v_arg = NULL;
PyObject *__pyx_v_dtype = NULL;
PyObject *__pyx_v_arg_base = NULL;
PyObject *__pyx_v_candidates = NULL;
PyObject *__pyx_v_sig = NULL;
int __pyx_v_match_found;
PyObject *__pyx_v_src_sig = NULL;
PyObject *__pyx_v_dst_type = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pm_devolution", 0);
__Pyx_INCREF(__pyx_v_kwargs);
__pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{ Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
}
}
__pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_3 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 855, __pyx_L1_error)
__pyx_t_3 = ((!__pyx_t_4) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L4_bool_binop_done:;
if (__pyx_t_2) {
__Pyx_INCREF(Py_None);
__Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
}
__pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_v_itemsize = -1L;
__pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
__pyx_v____pyx_uint32_t_is_signed = (!((((__pyx_t_5numpy_uint32_t)-1L) > 0) != 0));
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 855, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 855, __pyx_L1_error)
__pyx_t_2 = ((0 < __pyx_t_5) != 0);
if (__pyx_t_2) {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 855, __pyx_L1_error)
}
__pyx_t_1 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 0);
__Pyx_INCREF(__pyx_t_1);
__pyx_v_arg = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L6;
}
__pyx_t_3 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L7_bool_binop_done;
}
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 855, __pyx_L1_error)
}
__pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_I_n, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 855, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_4 != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L7_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 855, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_I_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_arg = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L6;
}
/*else*/ {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 855, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 855, __pyx_L1_error)
__pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_INCREF(__pyx_int_14);
__Pyx_GIVEREF(__pyx_int_14);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_14);
__Pyx_INCREF(__pyx_n_s_s);
__Pyx_GIVEREF(__pyx_n_s_s);
PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_Raise(__pyx_t_6, 0, 0, 0);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__PYX_ERR(0, 855, __pyx_L1_error)
}
__pyx_L6:;
while (1) {
__pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_dtype = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L12;
}
__pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_arg_base = __pyx_t_6;
__pyx_t_6 = 0;
__pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_dtype = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L13;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__pyx_v_dtype = Py_None;
}
__pyx_L13:;
goto __pyx_L12;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__pyx_v_dtype = Py_None;
}
__pyx_L12:;
__pyx_v_itemsize = -1L;
__pyx_t_2 = (__pyx_v_dtype != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_itemsize = __pyx_t_5;
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_kind = __pyx_t_7;
__pyx_v_dtype_signed = (__pyx_v_kind == 'i');
switch (__pyx_v_kind) {
case 'i':
case 'u':
__pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L16_bool_binop_done;
}
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L16_bool_binop_done;
}
__pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L16_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 855, __pyx_L1_error)
goto __pyx_L10_break;
}
__pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint32_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L20_bool_binop_done;
}
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L20_bool_binop_done;
}
__pyx_t_2 = ((!((__pyx_v____pyx_uint32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L20_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 855, __pyx_L1_error)
goto __pyx_L10_break;
}
break;
case 'f':
break;
case 'c':
break;
case 'O':
break;
default: break;
}
}
}
__pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L24_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L24_bool_binop_done:;
if (__pyx_t_3) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_3 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_3) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 855, __pyx_L1_error)
goto __pyx_L10_break;
}
/*else*/ {
PyErr_Clear();
}
}
__pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L28_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint32_t))) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L28_bool_binop_done:;
if (__pyx_t_3) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_3 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_3) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 855, __pyx_L1_error)
goto __pyx_L10_break;
}
/*else*/ {
PyErr_Clear();
}
}
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 855, __pyx_L1_error)
goto __pyx_L10_break;
}
__pyx_L10_break:;
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 855, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 855, __pyx_L1_error)
__pyx_t_3 = ((1 < __pyx_t_5) != 0);
if (__pyx_t_3) {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 855, __pyx_L1_error)
}
__pyx_t_6 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 1);
__Pyx_INCREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
__pyx_t_6 = 0;
goto __pyx_L31;
}
__pyx_t_2 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_2 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_3 = __pyx_t_4;
goto __pyx_L32_bool_binop_done;
}
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 855, __pyx_L1_error)
}
__pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_W, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 855, __pyx_L1_error)
__pyx_t_2 = (__pyx_t_4 != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L32_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 855, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_W); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
__pyx_t_6 = 0;
goto __pyx_L31;
}
/*else*/ {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 855, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 855, __pyx_L1_error)
__pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_int_14);
__Pyx_GIVEREF(__pyx_int_14);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_14);
__Pyx_INCREF(__pyx_n_s_s);
__Pyx_GIVEREF(__pyx_n_s_s);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 855, __pyx_L1_error)
}
__pyx_L31:;
while (1) {
__pyx_t_3 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
__pyx_t_1 = 0;
goto __pyx_L37;
}
__pyx_t_3 = __pyx_memoryview_check(__pyx_v_arg);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_arg_base, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
__pyx_t_1 = 0;
goto __pyx_L38;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
}
__pyx_L38:;
goto __pyx_L37;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
}
__pyx_L37:;
__pyx_v_itemsize = -1L;
__pyx_t_3 = (__pyx_v_dtype != Py_None);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_itemsize = __pyx_t_5;
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_1); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_kind = __pyx_t_7;
__pyx_v_dtype_signed = (__pyx_v_kind == 'i');
switch (__pyx_v_kind) {
case 'i':
case 'u':
break;
case 'f':
__pyx_t_3 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L41_bool_binop_done;
}
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 2) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L41_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 855, __pyx_L1_error)
goto __pyx_L35_break;
}
__pyx_t_3 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L44_bool_binop_done;
}
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 2) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L44_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 855, __pyx_L1_error)
goto __pyx_L35_break;
}
break;
case 'c':
break;
case 'O':
break;
default: break;
}
}
}
__pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L47_bool_binop_done;
}
__pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L47_bool_binop_done:;
if (__pyx_t_2) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_2 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_2) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 855, __pyx_L1_error)
goto __pyx_L35_break;
}
/*else*/ {
PyErr_Clear();
}
}
__pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L51_bool_binop_done;
}
__pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L51_bool_binop_done:;
if (__pyx_t_2) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_2 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_2) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 855, __pyx_L1_error)
goto __pyx_L35_break;
}
/*else*/ {
PyErr_Clear();
}
}
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 855, __pyx_L1_error)
goto __pyx_L35_break;
}
__pyx_L35_break:;
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_candidates = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_5 = 0;
if (unlikely(__pyx_v_signatures == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 855, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_9, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_10);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_v_match_found = 0;
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_14 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
__pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
if (likely(__pyx_t_14)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
__Pyx_INCREF(__pyx_t_14);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_13, function);
}
}
__pyx_t_12 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2);
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
__pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
if (likely(__pyx_t_12)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
__Pyx_INCREF(__pyx_t_12);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_13, function);
}
}
__pyx_t_6 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__3);
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_15 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 855, __pyx_L1_error)
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_i = __pyx_t_17;
__pyx_t_6 = PyList_GET_ITEM(__pyx_v_dest_sig, __pyx_v_i);
__Pyx_INCREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_2 = (__pyx_v_dst_type != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_13 = PyObject_RichCompare(__pyx_t_6, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
if (__pyx_t_3) {
__pyx_v_match_found = 1;
goto __pyx_L59;
}
/*else*/ {
__pyx_v_match_found = 0;
goto __pyx_L57_break;
}
__pyx_L59:;
}
}
__pyx_L57_break:;
__pyx_t_3 = (__pyx_v_match_found != 0);
if (__pyx_t_3) {
__pyx_t_18 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 855, __pyx_L1_error)
}
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
__pyx_t_2 = ((!__pyx_t_3) != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 855, __pyx_L1_error)
}
__pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 855, __pyx_L1_error)
__pyx_t_2 = ((__pyx_t_9 > 1) != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 855, __pyx_L1_error)
}
/*else*/ {
__Pyx_XDECREF(__pyx_r);
if (unlikely(__pyx_v_signatures == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 855, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), PyList_GET_ITEM(__pyx_v_candidates, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_AddTraceback("pyrost.bin.pyrost.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_dest_sig);
__Pyx_XDECREF(__pyx_v_ndarray);
__Pyx_XDECREF(__pyx_v_arg);
__Pyx_XDECREF(__pyx_v_dtype);
__Pyx_XDECREF(__pyx_v_arg_base);
__Pyx_XDECREF(__pyx_v_candidates);
__Pyx_XDECREF(__pyx_v_sig);
__Pyx_XDECREF(__pyx_v_src_sig);
__Pyx_XDECREF(__pyx_v_dst_type);
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_200__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = PyFloat_FromDouble(__Pyx_CyFunction_Defaults(__pyx_defaults36, __pyx_self)->__pyx_arg_F); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyFloat_FromDouble(__Pyx_CyFunction_Defaults(__pyx_defaults36, __pyx_self)->__pyx_arg_CR); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults36, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults36, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults36, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_4, 2, __Pyx_CyFunction_Defaults(__pyx_defaults36, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3);
__pyx_t_1 = 0;
__pyx_t_2 = 0;
__pyx_t_3 = 0;
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_4);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_3, 1, Py_None);
__pyx_t_4 = 0;
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_63pm_devolution(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_6pyrost_3bin_6pyrost_63pm_devolution = {"__pyx_fuse_0_0pm_devolution", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_63pm_devolution, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_8pm_devolution};
static PyObject *__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_63pm_devolution(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_sw_y;
double __pyx_v_sw_x;
unsigned int __pyx_v_pop_size;
unsigned int __pyx_v_n_iter;
unsigned long __pyx_v_seed;
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_sigma;
double __pyx_v_F;
double __pyx_v_CR;
PyObject *__pyx_v_loss = 0;
unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pm_devolution (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u0,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_sw_y,&__pyx_n_s_sw_x,&__pyx_n_s_pop_size,&__pyx_n_s_n_iter,&__pyx_n_s_seed,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_sigma,&__pyx_n_s_F,&__pyx_n_s_CR,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[18] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults36 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults36, __pyx_self);
values[16] = __pyx_dynamic_args->__pyx_arg_loss;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
CYTHON_FALLTHROUGH;
case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
CYTHON_FALLTHROUGH;
case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
CYTHON_FALLTHROUGH;
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 1); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 2); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 3); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 4); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 5); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 6); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 7); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pop_size)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 8); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_iter)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 9); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 10:
if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_seed)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 10); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 11:
if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 11); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 12:
if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 12); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 13:
if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 13); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 14:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_F);
if (value) { values[14] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 15:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_CR);
if (value) { values[15] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 16:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[16] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 17:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[17] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pm_devolution") < 0)) __PYX_ERR(0, 855, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
CYTHON_FALLTHROUGH;
case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
CYTHON_FALLTHROUGH;
case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
CYTHON_FALLTHROUGH;
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 855, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 855, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 855, __pyx_L3_error)
__pyx_v_u0 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u0.memview)) __PYX_ERR(0, 856, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 856, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 856, __pyx_L3_error)
__pyx_v_sw_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_sw_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 857, __pyx_L3_error)
__pyx_v_sw_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_sw_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 857, __pyx_L3_error)
__pyx_v_pop_size = __Pyx_PyInt_As_unsigned_int(values[8]); if (unlikely((__pyx_v_pop_size == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 857, __pyx_L3_error)
__pyx_v_n_iter = __Pyx_PyInt_As_unsigned_int(values[9]); if (unlikely((__pyx_v_n_iter == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 857, __pyx_L3_error)
__pyx_v_seed = __Pyx_PyInt_As_unsigned_long(values[10]); if (unlikely((__pyx_v_seed == (unsigned long)-1) && PyErr_Occurred())) __PYX_ERR(0, 857, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[11]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 858, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[12]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 858, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[13]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 858, __pyx_L3_error)
if (values[14]) {
__pyx_v_F = __pyx_PyFloat_AsDouble(values[14]); if (unlikely((__pyx_v_F == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 858, __pyx_L3_error)
} else {
__pyx_v_F = __pyx_dynamic_args->__pyx_arg_F;
}
if (values[15]) {
__pyx_v_CR = __pyx_PyFloat_AsDouble(values[15]); if (unlikely((__pyx_v_CR == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 858, __pyx_L3_error)
} else {
__pyx_v_CR = __pyx_dynamic_args->__pyx_arg_CR;
}
__pyx_v_loss = ((PyObject*)values[16]);
if (values[17]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[17]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 859, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 855, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_devolution", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 855, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 855, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 855, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u0"); __PYX_ERR(0, 856, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 856, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 856, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 858, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_62pm_devolution(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u0, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_pop_size, __pyx_v_n_iter, __pyx_v_seed, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_F, __pyx_v_CR, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_62pm_devolution(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u0, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_pop_size, unsigned int __pyx_v_n_iter, unsigned long __pyx_v_seed, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, double __pyx_v_F, double __pyx_v_CR, PyObject *__pyx_v_loss, unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_j;
int __pyx_v_k;
npy_intp *__pyx_v_u_shape;
PyArrayObject *__pyx_v_u = 0;
PyArrayObject *__pyx_v_derr = 0;
__Pyx_memviewslice __pyx_v__u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v__derr = { 0, 0, { 0 }, { 0 }, { 0 } };
gsl_rng *__pyx_v_r_master;
unsigned long __pyx_v_thread_seed;
gsl_rng *__pyx_v_r;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_0_0pm_devolution", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_7, 1);
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_devolution", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_u);
__Pyx_XDECREF((PyObject *)__pyx_v_derr);
__PYX_XDEC_MEMVIEW(&__pyx_v__u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v__derr, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_202__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = PyFloat_FromDouble(__Pyx_CyFunction_Defaults(__pyx_defaults37, __pyx_self)->__pyx_arg_F); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyFloat_FromDouble(__Pyx_CyFunction_Defaults(__pyx_defaults37, __pyx_self)->__pyx_arg_CR); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults37, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults37, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults37, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_4, 2, __Pyx_CyFunction_Defaults(__pyx_defaults37, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3);
__pyx_t_1 = 0;
__pyx_t_2 = 0;
__pyx_t_3 = 0;
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_4);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_3, 1, Py_None);
__pyx_t_4 = 0;
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_65pm_devolution(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_6pyrost_3bin_6pyrost_65pm_devolution = {"__pyx_fuse_0_1pm_devolution", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_65pm_devolution, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_8pm_devolution};
static PyObject *__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_65pm_devolution(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_sw_y;
double __pyx_v_sw_x;
unsigned int __pyx_v_pop_size;
unsigned int __pyx_v_n_iter;
unsigned long __pyx_v_seed;
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_sigma;
double __pyx_v_F;
double __pyx_v_CR;
PyObject *__pyx_v_loss = 0;
unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pm_devolution (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u0,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_sw_y,&__pyx_n_s_sw_x,&__pyx_n_s_pop_size,&__pyx_n_s_n_iter,&__pyx_n_s_seed,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_sigma,&__pyx_n_s_F,&__pyx_n_s_CR,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[18] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults37 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults37, __pyx_self);
values[16] = __pyx_dynamic_args->__pyx_arg_loss;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
CYTHON_FALLTHROUGH;
case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
CYTHON_FALLTHROUGH;
case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
CYTHON_FALLTHROUGH;
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 1); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 2); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 3); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 4); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 5); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 6); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 7); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pop_size)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 8); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_iter)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 9); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 10:
if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_seed)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 10); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 11:
if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 11); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 12:
if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 12); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 13:
if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 13); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 14:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_F);
if (value) { values[14] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 15:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_CR);
if (value) { values[15] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 16:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[16] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 17:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[17] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pm_devolution") < 0)) __PYX_ERR(0, 855, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
CYTHON_FALLTHROUGH;
case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
CYTHON_FALLTHROUGH;
case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
CYTHON_FALLTHROUGH;
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 855, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 855, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 855, __pyx_L3_error)
__pyx_v_u0 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u0.memview)) __PYX_ERR(0, 856, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 856, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 856, __pyx_L3_error)
__pyx_v_sw_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_sw_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 857, __pyx_L3_error)
__pyx_v_sw_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_sw_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 857, __pyx_L3_error)
__pyx_v_pop_size = __Pyx_PyInt_As_unsigned_int(values[8]); if (unlikely((__pyx_v_pop_size == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 857, __pyx_L3_error)
__pyx_v_n_iter = __Pyx_PyInt_As_unsigned_int(values[9]); if (unlikely((__pyx_v_n_iter == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 857, __pyx_L3_error)
__pyx_v_seed = __Pyx_PyInt_As_unsigned_long(values[10]); if (unlikely((__pyx_v_seed == (unsigned long)-1) && PyErr_Occurred())) __PYX_ERR(0, 857, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[11]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 858, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[12]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 858, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[13]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 858, __pyx_L3_error)
if (values[14]) {
__pyx_v_F = __pyx_PyFloat_AsDouble(values[14]); if (unlikely((__pyx_v_F == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 858, __pyx_L3_error)
} else {
__pyx_v_F = __pyx_dynamic_args->__pyx_arg_F;
}
if (values[15]) {
__pyx_v_CR = __pyx_PyFloat_AsDouble(values[15]); if (unlikely((__pyx_v_CR == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 858, __pyx_L3_error)
} else {
__pyx_v_CR = __pyx_dynamic_args->__pyx_arg_CR;
}
__pyx_v_loss = ((PyObject*)values[16]);
if (values[17]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[17]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 859, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 855, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_devolution", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 855, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 855, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 855, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u0"); __PYX_ERR(0, 856, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 856, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 856, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 858, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_64pm_devolution(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u0, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_pop_size, __pyx_v_n_iter, __pyx_v_seed, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_F, __pyx_v_CR, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_64pm_devolution(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u0, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_pop_size, unsigned int __pyx_v_n_iter, unsigned long __pyx_v_seed, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, double __pyx_v_F, double __pyx_v_CR, PyObject *__pyx_v_loss, unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_j;
int __pyx_v_k;
npy_intp *__pyx_v_u_shape;
PyArrayObject *__pyx_v_u = 0;
PyArrayObject *__pyx_v_derr = 0;
__Pyx_memviewslice __pyx_v__u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v__derr = { 0, 0, { 0 }, { 0 }, { 0 } };
gsl_rng *__pyx_v_r_master;
unsigned long __pyx_v_thread_seed;
gsl_rng *__pyx_v_r;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_0_1pm_devolution", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_7, 1);
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_devolution", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_u);
__Pyx_XDECREF((PyObject *)__pyx_v_derr);
__PYX_XDEC_MEMVIEW(&__pyx_v__u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v__derr, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_204__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = PyFloat_FromDouble(__Pyx_CyFunction_Defaults(__pyx_defaults38, __pyx_self)->__pyx_arg_F); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyFloat_FromDouble(__Pyx_CyFunction_Defaults(__pyx_defaults38, __pyx_self)->__pyx_arg_CR); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults38, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults38, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults38, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_4, 2, __Pyx_CyFunction_Defaults(__pyx_defaults38, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3);
__pyx_t_1 = 0;
__pyx_t_2 = 0;
__pyx_t_3 = 0;
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_4);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_3, 1, Py_None);
__pyx_t_4 = 0;
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_67pm_devolution(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_6pyrost_3bin_6pyrost_67pm_devolution = {"__pyx_fuse_1_0pm_devolution", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_67pm_devolution, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_8pm_devolution};
static PyObject *__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_67pm_devolution(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_sw_y;
double __pyx_v_sw_x;
unsigned int __pyx_v_pop_size;
unsigned int __pyx_v_n_iter;
unsigned long __pyx_v_seed;
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_sigma;
double __pyx_v_F;
double __pyx_v_CR;
PyObject *__pyx_v_loss = 0;
unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pm_devolution (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u0,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_sw_y,&__pyx_n_s_sw_x,&__pyx_n_s_pop_size,&__pyx_n_s_n_iter,&__pyx_n_s_seed,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_sigma,&__pyx_n_s_F,&__pyx_n_s_CR,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[18] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults38 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults38, __pyx_self);
values[16] = __pyx_dynamic_args->__pyx_arg_loss;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
CYTHON_FALLTHROUGH;
case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
CYTHON_FALLTHROUGH;
case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
CYTHON_FALLTHROUGH;
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 1); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 2); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 3); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 4); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 5); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 6); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 7); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pop_size)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 8); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_iter)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 9); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 10:
if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_seed)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 10); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 11:
if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 11); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 12:
if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 12); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 13:
if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 13); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 14:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_F);
if (value) { values[14] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 15:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_CR);
if (value) { values[15] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 16:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[16] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 17:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[17] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pm_devolution") < 0)) __PYX_ERR(0, 855, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
CYTHON_FALLTHROUGH;
case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
CYTHON_FALLTHROUGH;
case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
CYTHON_FALLTHROUGH;
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 855, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 855, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 855, __pyx_L3_error)
__pyx_v_u0 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u0.memview)) __PYX_ERR(0, 856, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 856, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 856, __pyx_L3_error)
__pyx_v_sw_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_sw_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 857, __pyx_L3_error)
__pyx_v_sw_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_sw_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 857, __pyx_L3_error)
__pyx_v_pop_size = __Pyx_PyInt_As_unsigned_int(values[8]); if (unlikely((__pyx_v_pop_size == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 857, __pyx_L3_error)
__pyx_v_n_iter = __Pyx_PyInt_As_unsigned_int(values[9]); if (unlikely((__pyx_v_n_iter == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 857, __pyx_L3_error)
__pyx_v_seed = __Pyx_PyInt_As_unsigned_long(values[10]); if (unlikely((__pyx_v_seed == (unsigned long)-1) && PyErr_Occurred())) __PYX_ERR(0, 857, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[11]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 858, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[12]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 858, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[13]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 858, __pyx_L3_error)
if (values[14]) {
__pyx_v_F = __pyx_PyFloat_AsDouble(values[14]); if (unlikely((__pyx_v_F == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 858, __pyx_L3_error)
} else {
__pyx_v_F = __pyx_dynamic_args->__pyx_arg_F;
}
if (values[15]) {
__pyx_v_CR = __pyx_PyFloat_AsDouble(values[15]); if (unlikely((__pyx_v_CR == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 858, __pyx_L3_error)
} else {
__pyx_v_CR = __pyx_dynamic_args->__pyx_arg_CR;
}
__pyx_v_loss = ((PyObject*)values[16]);
if (values[17]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[17]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 859, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 855, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_devolution", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 855, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 855, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 855, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u0"); __PYX_ERR(0, 856, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 856, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 856, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 858, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_66pm_devolution(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u0, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_pop_size, __pyx_v_n_iter, __pyx_v_seed, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_F, __pyx_v_CR, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_66pm_devolution(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u0, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_pop_size, unsigned int __pyx_v_n_iter, unsigned long __pyx_v_seed, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, double __pyx_v_F, double __pyx_v_CR, PyObject *__pyx_v_loss, unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_j;
int __pyx_v_k;
npy_intp *__pyx_v_u_shape;
PyArrayObject *__pyx_v_u = 0;
PyArrayObject *__pyx_v_derr = 0;
__Pyx_memviewslice __pyx_v__u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v__derr = { 0, 0, { 0 }, { 0 }, { 0 } };
gsl_rng *__pyx_v_r_master;
unsigned long __pyx_v_thread_seed;
gsl_rng *__pyx_v_r;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_1_0pm_devolution", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_7, 1);
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_devolution", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_u);
__Pyx_XDECREF((PyObject *)__pyx_v_derr);
__PYX_XDEC_MEMVIEW(&__pyx_v__u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v__derr, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_206__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = PyFloat_FromDouble(__Pyx_CyFunction_Defaults(__pyx_defaults39, __pyx_self)->__pyx_arg_F); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyFloat_FromDouble(__Pyx_CyFunction_Defaults(__pyx_defaults39, __pyx_self)->__pyx_arg_CR); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults39, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults39, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults39, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_4, 2, __Pyx_CyFunction_Defaults(__pyx_defaults39, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3);
__pyx_t_1 = 0;
__pyx_t_2 = 0;
__pyx_t_3 = 0;
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_4);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_3, 1, Py_None);
__pyx_t_4 = 0;
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_69pm_devolution(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_6pyrost_3bin_6pyrost_69pm_devolution = {"__pyx_fuse_1_1pm_devolution", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_69pm_devolution, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_8pm_devolution};
static PyObject *__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_69pm_devolution(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_sw_y;
double __pyx_v_sw_x;
unsigned int __pyx_v_pop_size;
unsigned int __pyx_v_n_iter;
unsigned long __pyx_v_seed;
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_sigma;
double __pyx_v_F;
double __pyx_v_CR;
PyObject *__pyx_v_loss = 0;
unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pm_devolution (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u0,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_sw_y,&__pyx_n_s_sw_x,&__pyx_n_s_pop_size,&__pyx_n_s_n_iter,&__pyx_n_s_seed,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_sigma,&__pyx_n_s_F,&__pyx_n_s_CR,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[18] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults39 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults39, __pyx_self);
values[16] = __pyx_dynamic_args->__pyx_arg_loss;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
CYTHON_FALLTHROUGH;
case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
CYTHON_FALLTHROUGH;
case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
CYTHON_FALLTHROUGH;
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 1); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 2); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 3); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 4); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 5); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 6); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 7); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pop_size)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 8); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_iter)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 9); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 10:
if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_seed)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 10); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 11:
if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 11); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 12:
if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 12); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 13:
if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, 13); __PYX_ERR(0, 855, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 14:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_F);
if (value) { values[14] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 15:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_CR);
if (value) { values[15] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 16:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[16] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 17:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[17] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pm_devolution") < 0)) __PYX_ERR(0, 855, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
CYTHON_FALLTHROUGH;
case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
CYTHON_FALLTHROUGH;
case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
CYTHON_FALLTHROUGH;
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 855, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 855, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 855, __pyx_L3_error)
__pyx_v_u0 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u0.memview)) __PYX_ERR(0, 856, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 856, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 856, __pyx_L3_error)
__pyx_v_sw_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_sw_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 857, __pyx_L3_error)
__pyx_v_sw_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_sw_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 857, __pyx_L3_error)
__pyx_v_pop_size = __Pyx_PyInt_As_unsigned_int(values[8]); if (unlikely((__pyx_v_pop_size == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 857, __pyx_L3_error)
__pyx_v_n_iter = __Pyx_PyInt_As_unsigned_int(values[9]); if (unlikely((__pyx_v_n_iter == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 857, __pyx_L3_error)
__pyx_v_seed = __Pyx_PyInt_As_unsigned_long(values[10]); if (unlikely((__pyx_v_seed == (unsigned long)-1) && PyErr_Occurred())) __PYX_ERR(0, 857, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[11]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 858, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[12]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 858, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[13]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 858, __pyx_L3_error)
if (values[14]) {
__pyx_v_F = __pyx_PyFloat_AsDouble(values[14]); if (unlikely((__pyx_v_F == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 858, __pyx_L3_error)
} else {
__pyx_v_F = __pyx_dynamic_args->__pyx_arg_F;
}
if (values[15]) {
__pyx_v_CR = __pyx_PyFloat_AsDouble(values[15]); if (unlikely((__pyx_v_CR == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 858, __pyx_L3_error)
} else {
__pyx_v_CR = __pyx_dynamic_args->__pyx_arg_CR;
}
__pyx_v_loss = ((PyObject*)values[16]);
if (values[17]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[17]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 859, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("pm_devolution", 0, 14, 18, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 855, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_devolution", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 855, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 855, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 855, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u0"); __PYX_ERR(0, 856, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 856, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 856, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 858, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_68pm_devolution(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u0, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_pop_size, __pyx_v_n_iter, __pyx_v_seed, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_F, __pyx_v_CR, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_68pm_devolution(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u0, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_pop_size, unsigned int __pyx_v_n_iter, unsigned long __pyx_v_seed, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, double __pyx_v_F, double __pyx_v_CR, PyObject *__pyx_v_loss, unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_j;
int __pyx_v_k;
npy_intp *__pyx_v_u_shape;
PyArrayObject *__pyx_v_u = 0;
PyArrayObject *__pyx_v_derr = 0;
__Pyx_memviewslice __pyx_v__u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v__derr = { 0, 0, { 0 }, { 0 }, { 0 } };
gsl_rng *__pyx_v_r_master;
unsigned long __pyx_v_thread_seed;
gsl_rng *__pyx_v_r;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_1_1pm_devolution", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_7, 1);
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_devolution", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_u);
__Pyx_XDECREF((PyObject *)__pyx_v_derr);
__PYX_XDEC_MEMVIEW(&__pyx_v__u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v__derr, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1);
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_GIVEREF(__pyx_n_u_Huber);
PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_n_u_Huber);
__Pyx_GIVEREF(__pyx_t_4);
PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4);
__pyx_t_2 = 0;
__pyx_t_1 = 0;
__pyx_t_4 = 0;
/* … */
__pyx_tuple__41 = PyTuple_Pack(32, __pyx_n_s_I_n, __pyx_n_s_W, __pyx_n_s_I0, __pyx_n_s_u0, __pyx_n_s_di, __pyx_n_s_dj, __pyx_n_s_sw_y, __pyx_n_s_sw_x, __pyx_n_s_pop_size, __pyx_n_s_n_iter, __pyx_n_s_seed, __pyx_n_s_ds_y, __pyx_n_s_ds_x, __pyx_n_s_sigma, __pyx_n_s_F, __pyx_n_s_CR, __pyx_n_s_loss, __pyx_n_s_num_threads, __pyx_n_s_f, __pyx_n_s_type_num, __pyx_n_s_Y, __pyx_n_s_X, __pyx_n_s_j, __pyx_n_s_k, __pyx_n_s_u_shape, __pyx_n_s_u, __pyx_n_s_derr, __pyx_n_s_u_2, __pyx_n_s_derr_2, __pyx_n_s_r_master, __pyx_n_s_thread_seed, __pyx_n_s_r); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__41);
__Pyx_GIVEREF(__pyx_tuple__41);
__pyx_t_4 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0_0__pyx_mdef_6pyrost_3bin_6pyrost_63pm_devolution, 0, __pyx_n_s_pm_devolution, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__42)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults36), 1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults36, __pyx_t_1)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults36, __pyx_t_1)->__pyx_arg_F = 0.75;
__Pyx_CyFunction_Defaults(__pyx_defaults36, __pyx_t_1)->__pyx_arg_CR = 0.7;
__Pyx_CyFunction_Defaults(__pyx_defaults36, __pyx_t_1)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_5);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pyrost_3bin_6pyrost_200__defaults__);
if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_uint64_t_float64_t, __pyx_t_1) < 0) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0_1__pyx_mdef_6pyrost_3bin_6pyrost_65pm_devolution, 0, __pyx_n_s_pm_devolution, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__42)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults37), 1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults37, __pyx_t_1)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults37, __pyx_t_1)->__pyx_arg_F = 0.75;
__Pyx_CyFunction_Defaults(__pyx_defaults37, __pyx_t_1)->__pyx_arg_CR = 0.7;
__Pyx_CyFunction_Defaults(__pyx_defaults37, __pyx_t_1)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_5);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pyrost_3bin_6pyrost_202__defaults__);
if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_uint64_t_float32_t, __pyx_t_1) < 0) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1_0__pyx_mdef_6pyrost_3bin_6pyrost_67pm_devolution, 0, __pyx_n_s_pm_devolution, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__42)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults38), 1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults38, __pyx_t_1)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults38, __pyx_t_1)->__pyx_arg_F = 0.75;
__Pyx_CyFunction_Defaults(__pyx_defaults38, __pyx_t_1)->__pyx_arg_CR = 0.7;
__Pyx_CyFunction_Defaults(__pyx_defaults38, __pyx_t_1)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_5);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pyrost_3bin_6pyrost_204__defaults__);
if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_uint32_t_float64_t, __pyx_t_1) < 0) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1_1__pyx_mdef_6pyrost_3bin_6pyrost_69pm_devolution, 0, __pyx_n_s_pm_devolution, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__42)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults39), 1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults39, __pyx_t_1)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults39, __pyx_t_1)->__pyx_arg_F = 0.75;
__Pyx_CyFunction_Defaults(__pyx_defaults39, __pyx_t_1)->__pyx_arg_CR = 0.7;
__Pyx_CyFunction_Defaults(__pyx_defaults39, __pyx_t_1)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_5);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pyrost_3bin_6pyrost_206__defaults__);
if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_uint32_t_float32_t, __pyx_t_1) < 0) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_6pyrost_3bin_6pyrost_9pm_devolution, 0, __pyx_n_s_pm_devolution, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__42)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_5);
((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_4;
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_4 = 0;
if (PyDict_SetItem(__pyx_d, __pyx_n_s_pm_devolution, __pyx_t_1) < 0) __PYX_ERR(0, 855, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_codeobj__42 = (PyObject*)__Pyx_PyCode_New(18, 0, 32, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__41, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pyrost_bin_pyrost_pyx, __pyx_n_s_pm_devolution, 855, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__42)) __PYX_ERR(0, 855, __pyx_L1_error)
0856: float_t[:, :, ::1] u0 not None, float_t[::1] di not None, float_t[::1] dj not None,
0857: double sw_y, double sw_x, unsigned pop_size, unsigned n_iter, unsigned long seed,
+0858: double ds_y, double ds_x, double sigma, double F=0.75, double CR=0.7, str loss='Huber',
__pyx_t_2 = PyFloat_FromDouble(0.75); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 858, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyFloat_FromDouble(0.7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 858, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
+0859: unsigned num_threads=1):
__pyx_t_4 = __Pyx_PyInt_From_long(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
0860: r"""Update the pixel mapping by minimizing mean-squared-error (MSE). Perform
0861: a differential evolution within the search window of `sw_y`, `sw_x` size along
0862: the vertical and fast axes accordingly in order to minimize the MSE at each
0863: point of the detector grid separately.
0864:
0865: Args:
0866: I_n (numpy.ndarray) : Measured intensity frames.
0867: W (numpy.ndarray) : Measured frames' whitefield.
0868: I0 (numpy.ndarray) : Reference image of the sample.
0869: u (numpy.ndarray) : The discrete geometrical mapping of the detector
0870: plane to the reference image.
0871: di (numpy.ndarray) : Initial sample's translations along the vertical
0872: detector axis in pixels.
0873: dj (numpy.ndarray) : Initial sample's translations along the horizontal
0874: detector axis in pixels.
0875: sw_y (float) : Search window size in pixels along the vertical detector
0876: axis.
0877: sw_x (float) : Search window size in pixels along the horizontal detector
0878: axis.
0879: pop_size (int) : The total population size. Must be greater or equal to 4.
0880: n_iter (int) : The maximum number of generations over which the entire
0881: population is evolved.
0882: seed (int) : Specify seed for the random number generation.
0883: ds_y (float) : Sampling interval of reference image in pixels along the
0884: vertical axis.
0885: ds_x (float) : Sampling interval of reference image in pixels along the
0886: horizontal axis.
0887: sigma (float) : The standard deviation of `I_n`.
0888: F (float) : The mutation constant. In the literature this is also known as
0889: differential weight. If specified as a float it should be in the
0890: range [0, 2].
0891: CR (float) : The recombination constant, should be in the range [0, 1]. In
0892: the literature this is also known as the crossover probability.
0893: loss (str) : Choose between the following loss functions:
0894:
0895: * 'Epsilon': Epsilon loss function (epsilon = 0.5)
0896: * 'Huber' : Huber loss function (k = 1.345)
0897: * 'L1' : L1 norm loss function.
0898: * 'L2' : L2 norm loss function.
0899:
0900: num_threads (int) : Number of threads.
0901:
0902: Returns:
0903: Tuple[numpy.ndarray, numpy.ndarray] : A tuple of two elements ('u', 'derr').
0904: The elements are the following:
0905:
0906: * 'u' : Updated pixel mapping array.
0907: * 'derr' : Error decrease for each pixel in the detector grid.
0908:
0909: Notes:
0910: The error metric as a function of pixel mapping displacements
0911: is given by:
0912:
0913: .. math::
0914:
0915: \varepsilon_{pm}[i, j, i^{\prime}, j^{\prime}] = \frac{1}{N}
0916: \sum_{n = 0}^N f\left( \frac{I[n, i, j] - W[i, j]
0917: I_{ref}[u[0, i, j] + i^{\prime} - di[n],
0918: u[1, i, j] + j^{\prime} - dj[n]]}{\sigma} \right)
0919:
0920: where :math:`f(x)` is L1 norm, L2 norm or Huber loss function.
0921: """
+0922: if ds_y <= 0.0 or ds_x <= 0.0:
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
+0923: raise ValueError('Sampling intervals must be positive')
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 923, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 923, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 923, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 923, __pyx_L1_error)
+0924: if pop_size < 4:
__pyx_t_1 = ((__pyx_v_pop_size < 4) != 0);
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_1 = ((__pyx_v_pop_size < 4) != 0);
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_1 = ((__pyx_v_pop_size < 4) != 0);
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_1 = ((__pyx_v_pop_size < 4) != 0);
if (unlikely(__pyx_t_1)) {
/* … */
}
+0925: raise ValueError('Population size must be greater or equal to 4.')
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 925, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 925, __pyx_L1_error) /* … */ __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_u_Population_size_must_be_greater); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(0, 925, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__7); __Pyx_GIVEREF(__pyx_tuple__7); /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 925, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 925, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 925, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 925, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 925, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 925, __pyx_L1_error)
+0926: if F < 0.0 or F > 2.0:
__pyx_t_2 = ((__pyx_v_F < 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L8_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_F > 2.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L8_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_F < 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L8_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_F > 2.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L8_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_F < 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L8_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_F > 2.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L8_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_F < 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L8_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_F > 2.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L8_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
+0927: raise ValueError('The mutation constant F must be in the interval [0.0, 2.0].')
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 927, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 927, __pyx_L1_error) /* … */ __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_u_The_mutation_constant_F_must_be); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(0, 927, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__8); __Pyx_GIVEREF(__pyx_tuple__8); /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 927, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 927, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 927, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 927, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 927, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 927, __pyx_L1_error)
+0928: if CR < 0.0 or CR > 1.0:
__pyx_t_2 = ((__pyx_v_CR < 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L11_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_CR > 1.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L11_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_CR < 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L11_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_CR > 1.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L11_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_CR < 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L11_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_CR > 1.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L11_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_CR < 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L11_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_CR > 1.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L11_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
+0929: raise ValueError('The recombination constant CR must be in the interval [0.0, 1.0].')
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 929, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 929, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 929, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 929, __pyx_L1_error) /* … */ __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_u_The_recombination_constant_CR_mu); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(0, 929, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__9); __Pyx_GIVEREF(__pyx_tuple__9);
0930:
+0931: cdef loss_func f = choose_loss(loss)
__pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss); /* … */ __pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss); /* … */ __pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss); /* … */ __pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss);
0932:
+0933: cdef int type_num = np.PyArray_TYPE(W.base)
__pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 933, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 933, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 933, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 933, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 933, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 933, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 933, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 933, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 933, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 933, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 933, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 933, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0934: cdef int Y = I_n.shape[1], X = I_n.shape[2], j, k
__pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]);
0935:
+0936: cdef np.npy_intp *u_shape = [2, Y, X]
__pyx_t_5[0] = 2; __pyx_t_5[1] = __pyx_v_Y; __pyx_t_5[2] = __pyx_v_X; __pyx_v_u_shape = __pyx_t_5; /* … */ __pyx_t_5[0] = 2; __pyx_t_5[1] = __pyx_v_Y; __pyx_t_5[2] = __pyx_v_X; __pyx_v_u_shape = __pyx_t_5; /* … */ __pyx_t_5[0] = 2; __pyx_t_5[1] = __pyx_v_Y; __pyx_t_5[2] = __pyx_v_X; __pyx_v_u_shape = __pyx_t_5; /* … */ __pyx_t_5[0] = 2; __pyx_t_5[1] = __pyx_v_Y; __pyx_t_5[2] = __pyx_v_X; __pyx_v_u_shape = __pyx_t_5;
+0937: cdef np.ndarray u = np.PyArray_SimpleNew(3, u_shape, type_num)
__pyx_t_4 = PyArray_SimpleNew(3, __pyx_v_u_shape, __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 937, __pyx_L1_error) __pyx_v_u = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_SimpleNew(3, __pyx_v_u_shape, __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 937, __pyx_L1_error) __pyx_v_u = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_SimpleNew(3, __pyx_v_u_shape, __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 937, __pyx_L1_error) __pyx_v_u = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_SimpleNew(3, __pyx_v_u_shape, __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 937, __pyx_L1_error) __pyx_v_u = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0;
+0938: cdef np.ndarray derr = np.PyArray_ZEROS(2, u_shape + 1, type_num, 0)
__pyx_t_4 = PyArray_ZEROS(2, (__pyx_v_u_shape + 1), __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 938, __pyx_L1_error) __pyx_v_derr = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_ZEROS(2, (__pyx_v_u_shape + 1), __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 938, __pyx_L1_error) __pyx_v_derr = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_ZEROS(2, (__pyx_v_u_shape + 1), __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 938, __pyx_L1_error) __pyx_v_derr = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_ZEROS(2, (__pyx_v_u_shape + 1), __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 938, __pyx_L1_error) __pyx_v_derr = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0;
+0939: cdef float_t[:, :, ::1] _u = u
__pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(((PyObject *)__pyx_v_u), PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 939, __pyx_L1_error) __pyx_v__u = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(((PyObject *)__pyx_v_u), PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 939, __pyx_L1_error) __pyx_v__u = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(((PyObject *)__pyx_v_u), PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 939, __pyx_L1_error) __pyx_v__u = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(((PyObject *)__pyx_v_u), PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 939, __pyx_L1_error) __pyx_v__u = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL;
+0940: cdef float_t[:, ::1] _derr = derr
__pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(((PyObject *)__pyx_v_derr), PyBUF_WRITABLE); if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 940, __pyx_L1_error) __pyx_v__derr = __pyx_t_7; __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL; /* … */ __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(((PyObject *)__pyx_v_derr), PyBUF_WRITABLE); if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 940, __pyx_L1_error) __pyx_v__derr = __pyx_t_7; __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL; /* … */ __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(((PyObject *)__pyx_v_derr), PyBUF_WRITABLE); if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 940, __pyx_L1_error) __pyx_v__derr = __pyx_t_7; __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL; /* … */ __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(((PyObject *)__pyx_v_derr), PyBUF_WRITABLE); if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 940, __pyx_L1_error) __pyx_v__derr = __pyx_t_7; __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL;
0941:
+0942: cdef gsl_rng *r_master = gsl_rng_alloc(gsl_rng_mt19937)
__pyx_v_r_master = gsl_rng_alloc(gsl_rng_mt19937); /* … */ __pyx_v_r_master = gsl_rng_alloc(gsl_rng_mt19937); /* … */ __pyx_v_r_master = gsl_rng_alloc(gsl_rng_mt19937); /* … */ __pyx_v_r_master = gsl_rng_alloc(gsl_rng_mt19937);
+0943: gsl_rng_set(r_master, seed)
gsl_rng_set(__pyx_v_r_master, __pyx_v_seed); /* … */ gsl_rng_set(__pyx_v_r_master, __pyx_v_seed); /* … */ gsl_rng_set(__pyx_v_r_master, __pyx_v_seed); /* … */ gsl_rng_set(__pyx_v_r_master, __pyx_v_seed);
0944: cdef unsigned long thread_seed
0945: cdef gsl_rng *r
0946:
+0947: with nogil, parallel(num_threads=num_threads):
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_r, __pyx_v_thread_seed) {
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_r, __pyx_v_thread_seed) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
{
/* Initialize private variables to invalid values */
__pyx_v_r = ((gsl_rng *)1);
__pyx_v_thread_seed = ((unsigned long)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L15;
}
__pyx_L15:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_r, __pyx_v_thread_seed) {
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_r, __pyx_v_thread_seed) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
{
/* Initialize private variables to invalid values */
__pyx_v_r = ((gsl_rng *)1);
__pyx_v_thread_seed = ((unsigned long)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L15;
}
__pyx_L15:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_r, __pyx_v_thread_seed) {
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_r, __pyx_v_thread_seed) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
{
/* Initialize private variables to invalid values */
__pyx_v_r = ((gsl_rng *)1);
__pyx_v_thread_seed = ((unsigned long)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L15;
}
__pyx_L15:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_r, __pyx_v_thread_seed) {
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_r, __pyx_v_thread_seed) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
{
/* Initialize private variables to invalid values */
__pyx_v_r = ((gsl_rng *)1);
__pyx_v_thread_seed = ((unsigned long)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L15;
}
__pyx_L15:;
}
}
+0948: r = gsl_rng_alloc(gsl_rng_mt19937)
__pyx_v_r = gsl_rng_alloc(gsl_rng_mt19937);
/* … */
__pyx_v_r = gsl_rng_alloc(gsl_rng_mt19937);
/* … */
__pyx_v_r = gsl_rng_alloc(gsl_rng_mt19937);
/* … */
__pyx_v_r = gsl_rng_alloc(gsl_rng_mt19937);
+0949: thread_seed = gsl_rng_get(r_master)
__pyx_v_thread_seed = gsl_rng_get(__pyx_v_r_master);
/* … */
__pyx_v_thread_seed = gsl_rng_get(__pyx_v_r_master);
/* … */
__pyx_v_thread_seed = gsl_rng_get(__pyx_v_r_master);
/* … */
__pyx_v_thread_seed = gsl_rng_get(__pyx_v_r_master);
+0950: gsl_rng_set(r, thread_seed)
gsl_rng_set(__pyx_v_r, __pyx_v_thread_seed);
/* … */
gsl_rng_set(__pyx_v_r, __pyx_v_thread_seed);
/* … */
gsl_rng_set(__pyx_v_r, __pyx_v_thread_seed);
/* … */
gsl_rng_set(__pyx_v_r, __pyx_v_thread_seed);
0951:
+0952: for k in prange(X, schedule='guided'):
__pyx_t_8 = __pyx_v_X;
if ((1 == 0)) abort();
{
__pyx_t_10 = (__pyx_t_8 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_10 > 0)
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided)
#endif /* _OPENMP */
for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_10; __pyx_t_9++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_9);
/* Initialize private variables to invalid values */
__pyx_v_j = ((int)0xbad0bad0);
/* … */
__pyx_t_8 = __pyx_v_X;
if ((1 == 0)) abort();
{
__pyx_t_10 = (__pyx_t_8 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_10 > 0)
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided)
#endif /* _OPENMP */
for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_10; __pyx_t_9++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_9);
/* Initialize private variables to invalid values */
__pyx_v_j = ((int)0xbad0bad0);
/* … */
__pyx_t_8 = __pyx_v_X;
if ((1 == 0)) abort();
{
__pyx_t_10 = (__pyx_t_8 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_10 > 0)
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided)
#endif /* _OPENMP */
for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_10; __pyx_t_9++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_9);
/* Initialize private variables to invalid values */
__pyx_v_j = ((int)0xbad0bad0);
/* … */
__pyx_t_8 = __pyx_v_X;
if ((1 == 0)) abort();
{
__pyx_t_10 = (__pyx_t_8 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_10 > 0)
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided)
#endif /* _OPENMP */
for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_10; __pyx_t_9++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_9);
/* Initialize private variables to invalid values */
__pyx_v_j = ((int)0xbad0bad0);
+0953: for j in range(Y):
__pyx_t_11 = __pyx_v_Y;
__pyx_t_12 = __pyx_t_11;
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
__pyx_v_j = __pyx_t_13;
/* … */
__pyx_t_11 = __pyx_v_Y;
__pyx_t_12 = __pyx_t_11;
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
__pyx_v_j = __pyx_t_13;
/* … */
__pyx_t_11 = __pyx_v_Y;
__pyx_t_12 = __pyx_t_11;
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
__pyx_v_j = __pyx_t_13;
/* … */
__pyx_t_11 = __pyx_v_Y;
__pyx_t_12 = __pyx_t_11;
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
__pyx_v_j = __pyx_t_13;
+0954: _u[0, j, k] = u0[0, j, k]; _u[1, j, k] = u0[1, j, k]
__pyx_t_14 = 0;
__pyx_t_15 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = 0;
__pyx_t_18 = __pyx_v_j;
__pyx_t_19 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v__u.data + __pyx_t_17 * __pyx_v__u.strides[0]) ) + __pyx_t_18 * __pyx_v__u.strides[1]) )) + __pyx_t_19)) )) = (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u0.data + __pyx_t_14 * __pyx_v_u0.strides[0]) ) + __pyx_t_15 * __pyx_v_u0.strides[1]) )) + __pyx_t_16)) )));
__pyx_t_16 = 1;
__pyx_t_15 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_t_19 = 1;
__pyx_t_18 = __pyx_v_j;
__pyx_t_17 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v__u.data + __pyx_t_19 * __pyx_v__u.strides[0]) ) + __pyx_t_18 * __pyx_v__u.strides[1]) )) + __pyx_t_17)) )) = (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u0.data + __pyx_t_16 * __pyx_v_u0.strides[0]) ) + __pyx_t_15 * __pyx_v_u0.strides[1]) )) + __pyx_t_14)) )));
/* … */
__pyx_t_14 = 0;
__pyx_t_15 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = 0;
__pyx_t_18 = __pyx_v_j;
__pyx_t_19 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v__u.data + __pyx_t_17 * __pyx_v__u.strides[0]) ) + __pyx_t_18 * __pyx_v__u.strides[1]) )) + __pyx_t_19)) )) = (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u0.data + __pyx_t_14 * __pyx_v_u0.strides[0]) ) + __pyx_t_15 * __pyx_v_u0.strides[1]) )) + __pyx_t_16)) )));
__pyx_t_16 = 1;
__pyx_t_15 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_t_19 = 1;
__pyx_t_18 = __pyx_v_j;
__pyx_t_17 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v__u.data + __pyx_t_19 * __pyx_v__u.strides[0]) ) + __pyx_t_18 * __pyx_v__u.strides[1]) )) + __pyx_t_17)) )) = (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u0.data + __pyx_t_16 * __pyx_v_u0.strides[0]) ) + __pyx_t_15 * __pyx_v_u0.strides[1]) )) + __pyx_t_14)) )));
/* … */
__pyx_t_14 = 0;
__pyx_t_15 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = 0;
__pyx_t_18 = __pyx_v_j;
__pyx_t_19 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v__u.data + __pyx_t_17 * __pyx_v__u.strides[0]) ) + __pyx_t_18 * __pyx_v__u.strides[1]) )) + __pyx_t_19)) )) = (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u0.data + __pyx_t_14 * __pyx_v_u0.strides[0]) ) + __pyx_t_15 * __pyx_v_u0.strides[1]) )) + __pyx_t_16)) )));
__pyx_t_16 = 1;
__pyx_t_15 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_t_19 = 1;
__pyx_t_18 = __pyx_v_j;
__pyx_t_17 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v__u.data + __pyx_t_19 * __pyx_v__u.strides[0]) ) + __pyx_t_18 * __pyx_v__u.strides[1]) )) + __pyx_t_17)) )) = (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u0.data + __pyx_t_16 * __pyx_v_u0.strides[0]) ) + __pyx_t_15 * __pyx_v_u0.strides[1]) )) + __pyx_t_14)) )));
/* … */
__pyx_t_14 = 0;
__pyx_t_15 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = 0;
__pyx_t_18 = __pyx_v_j;
__pyx_t_19 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v__u.data + __pyx_t_17 * __pyx_v__u.strides[0]) ) + __pyx_t_18 * __pyx_v__u.strides[1]) )) + __pyx_t_19)) )) = (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u0.data + __pyx_t_14 * __pyx_v_u0.strides[0]) ) + __pyx_t_15 * __pyx_v_u0.strides[1]) )) + __pyx_t_16)) )));
__pyx_t_16 = 1;
__pyx_t_15 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_t_19 = 1;
__pyx_t_18 = __pyx_v_j;
__pyx_t_17 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v__u.data + __pyx_t_19 * __pyx_v__u.strides[0]) ) + __pyx_t_18 * __pyx_v__u.strides[1]) )) + __pyx_t_17)) )) = (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u0.data + __pyx_t_16 * __pyx_v_u0.strides[0]) ) + __pyx_t_15 * __pyx_v_u0.strides[1]) )) + __pyx_t_14)) )));
+0955: if W[j, k] > 0.0:
__pyx_t_14 = __pyx_v_j;
__pyx_t_15 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_14 * __pyx_v_W.strides[0]) )) + __pyx_t_15)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
}
}
}
}
}
/* … */
__pyx_t_14 = __pyx_v_j;
__pyx_t_15 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_14 * __pyx_v_W.strides[0]) )) + __pyx_t_15)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
}
}
}
}
}
/* … */
__pyx_t_14 = __pyx_v_j;
__pyx_t_15 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_14 * __pyx_v_W.strides[0]) )) + __pyx_t_15)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
}
}
}
}
}
/* … */
__pyx_t_14 = __pyx_v_j;
__pyx_t_15 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_14 * __pyx_v_W.strides[0]) )) + __pyx_t_15)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
}
}
}
}
}
+0956: pm_devolver(I_n, W, I0, r, _u, _derr, di, dj, j, k, sw_y, sw_x,
__pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_pm_devolver(__pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_r, __pyx_v__u, __pyx_v__derr, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_pop_size, __pyx_v_n_iter, __pyx_v_CR, __pyx_v_F, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_pm_devolver(__pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_r, __pyx_v__u, __pyx_v__derr, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_pop_size, __pyx_v_n_iter, __pyx_v_CR, __pyx_v_F, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_pm_devolver(__pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_r, __pyx_v__u, __pyx_v__derr, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_pop_size, __pyx_v_n_iter, __pyx_v_CR, __pyx_v_F, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_pm_devolver(__pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_r, __pyx_v__u, __pyx_v__derr, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_pop_size, __pyx_v_n_iter, __pyx_v_CR, __pyx_v_F, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
0957: pop_size, n_iter, CR, F, ds_y, ds_x, sigma, f)
0958:
+0959: gsl_rng_free(r)
gsl_rng_free(__pyx_v_r);
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
gsl_rng_free(__pyx_v_r);
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
gsl_rng_free(__pyx_v_r);
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
gsl_rng_free(__pyx_v_r);
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
0960:
+0961: gsl_rng_free(r_master)
gsl_rng_free(__pyx_v_r_master); /* … */ gsl_rng_free(__pyx_v_r_master); /* … */ gsl_rng_free(__pyx_v_r_master); /* … */ gsl_rng_free(__pyx_v_r_master);
0962:
+0963: return u, derr
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_v_u)); __Pyx_GIVEREF(((PyObject *)__pyx_v_u)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_u)); __Pyx_INCREF(((PyObject *)__pyx_v_derr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_derr)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_derr)); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_v_u)); __Pyx_GIVEREF(((PyObject *)__pyx_v_u)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_u)); __Pyx_INCREF(((PyObject *)__pyx_v_derr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_derr)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_derr)); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_v_u)); __Pyx_GIVEREF(((PyObject *)__pyx_v_u)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_u)); __Pyx_INCREF(((PyObject *)__pyx_v_derr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_derr)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_derr)); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_v_u)); __Pyx_GIVEREF(((PyObject *)__pyx_v_u)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_u)); __Pyx_INCREF(((PyObject *)__pyx_v_derr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_derr)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_derr)); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
0964:
+0965: cdef void tr_updater(float_t[:, ::1] errors, uint_t[:, ::1] I_n, float_t[:, ::1] W, float_t[:, ::1] I0,
static void __pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_tr_updater(__Pyx_memviewslice __pyx_v_errors, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float64_t *__pyx_v_di, __pyx_t_5numpy_float64_t *__pyx_v_dj, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_wsize, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
double __pyx_v_di_min;
double __pyx_v_dj_min;
double __pyx_v_err_min;
double __pyx_v_dii;
double __pyx_v_djj;
double __pyx_v_dsw_y;
double __pyx_v_dsw_x;
int __pyx_v_ii;
int __pyx_v_jj;
double __pyx_v_err;
/* … */
/* function exit code */
}
static void __pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_tr_updater(__Pyx_memviewslice __pyx_v_errors, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float64_t *__pyx_v_di, __pyx_t_5numpy_float64_t *__pyx_v_dj, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_wsize, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
double __pyx_v_di_min;
double __pyx_v_dj_min;
double __pyx_v_err_min;
double __pyx_v_dii;
double __pyx_v_djj;
double __pyx_v_dsw_y;
double __pyx_v_dsw_x;
int __pyx_v_ii;
int __pyx_v_jj;
double __pyx_v_err;
/* … */
/* function exit code */
}
static void __pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_tr_updater(__Pyx_memviewslice __pyx_v_errors, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float32_t *__pyx_v_di, __pyx_t_5numpy_float32_t *__pyx_v_dj, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_wsize, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
double __pyx_v_di_min;
double __pyx_v_dj_min;
double __pyx_v_err_min;
double __pyx_v_dii;
double __pyx_v_djj;
double __pyx_v_dsw_y;
double __pyx_v_dsw_x;
int __pyx_v_ii;
int __pyx_v_jj;
double __pyx_v_err;
/* … */
/* function exit code */
}
static void __pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_tr_updater(__Pyx_memviewslice __pyx_v_errors, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float32_t *__pyx_v_di, __pyx_t_5numpy_float32_t *__pyx_v_dj, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_wsize, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
double __pyx_v_di_min;
double __pyx_v_dj_min;
double __pyx_v_err_min;
double __pyx_v_dii;
double __pyx_v_djj;
double __pyx_v_dsw_y;
double __pyx_v_dsw_x;
int __pyx_v_ii;
int __pyx_v_jj;
double __pyx_v_err;
/* … */
/* function exit code */
}
0966: float_t[:, :, ::1] u, float_t *di, float_t *dj, double sw_y, double sw_x,
0967: unsigned wsize, double ds_y, double ds_x, double sigma, loss_func f) nogil:
+0968: cdef double di_min = 0.0, dj_min = 0.0, err_min=FLOAT_MAX, dii, djj
__pyx_v_di_min = 0.0; __pyx_v_dj_min = 0.0; __pyx_v_err_min = 1.7976931348623157e+308; /* … */ __pyx_v_di_min = 0.0; __pyx_v_dj_min = 0.0; __pyx_v_err_min = 1.7976931348623157e+308; /* … */ __pyx_v_di_min = 0.0; __pyx_v_dj_min = 0.0; __pyx_v_err_min = 1.7976931348623157e+308; /* … */ __pyx_v_di_min = 0.0; __pyx_v_dj_min = 0.0; __pyx_v_err_min = 1.7976931348623157e+308;
+0969: cdef double dsw_y = 2.0 * sw_y / (wsize - 1), dsw_x = 2.0 * sw_x / (wsize - 1)
__pyx_v_dsw_y = ((2.0 * __pyx_v_sw_y) / ((double)(__pyx_v_wsize - 1))); __pyx_v_dsw_x = ((2.0 * __pyx_v_sw_x) / ((double)(__pyx_v_wsize - 1))); /* … */ __pyx_v_dsw_y = ((2.0 * __pyx_v_sw_y) / ((double)(__pyx_v_wsize - 1))); __pyx_v_dsw_x = ((2.0 * __pyx_v_sw_x) / ((double)(__pyx_v_wsize - 1))); /* … */ __pyx_v_dsw_y = ((2.0 * __pyx_v_sw_y) / ((double)(__pyx_v_wsize - 1))); __pyx_v_dsw_x = ((2.0 * __pyx_v_sw_x) / ((double)(__pyx_v_wsize - 1))); /* … */ __pyx_v_dsw_y = ((2.0 * __pyx_v_sw_y) / ((double)(__pyx_v_wsize - 1))); __pyx_v_dsw_x = ((2.0 * __pyx_v_sw_x) / ((double)(__pyx_v_wsize - 1)));
0970: cdef int ii, jj
0971:
+0972: for ii in range(<int>wsize if dsw_y > 0.0 else 1):
if (((__pyx_v_dsw_y > 0.0) != 0)) {
__pyx_t_1 = ((int)__pyx_v_wsize);
} else {
__pyx_t_1 = 1;
}
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_ii = __pyx_t_3;
/* … */
if (((__pyx_v_dsw_y > 0.0) != 0)) {
__pyx_t_1 = ((int)__pyx_v_wsize);
} else {
__pyx_t_1 = 1;
}
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_ii = __pyx_t_3;
/* … */
if (((__pyx_v_dsw_y > 0.0) != 0)) {
__pyx_t_1 = ((int)__pyx_v_wsize);
} else {
__pyx_t_1 = 1;
}
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_ii = __pyx_t_3;
/* … */
if (((__pyx_v_dsw_y > 0.0) != 0)) {
__pyx_t_1 = ((int)__pyx_v_wsize);
} else {
__pyx_t_1 = 1;
}
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_ii = __pyx_t_3;
+0973: dii = dsw_y * (ii - 0.5 * (wsize - 1))
__pyx_v_dii = (__pyx_v_dsw_y * (__pyx_v_ii - (0.5 * (__pyx_v_wsize - 1))));
/* … */
__pyx_v_dii = (__pyx_v_dsw_y * (__pyx_v_ii - (0.5 * (__pyx_v_wsize - 1))));
/* … */
__pyx_v_dii = (__pyx_v_dsw_y * (__pyx_v_ii - (0.5 * (__pyx_v_wsize - 1))));
/* … */
__pyx_v_dii = (__pyx_v_dsw_y * (__pyx_v_ii - (0.5 * (__pyx_v_wsize - 1))));
+0974: for jj in range(<int>wsize if dsw_x > 0.0 else 1):
if (((__pyx_v_dsw_x > 0.0) != 0)) {
__pyx_t_4 = ((int)__pyx_v_wsize);
} else {
__pyx_t_4 = 1;
}
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_jj = __pyx_t_6;
/* … */
if (((__pyx_v_dsw_x > 0.0) != 0)) {
__pyx_t_4 = ((int)__pyx_v_wsize);
} else {
__pyx_t_4 = 1;
}
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_jj = __pyx_t_6;
/* … */
if (((__pyx_v_dsw_x > 0.0) != 0)) {
__pyx_t_4 = ((int)__pyx_v_wsize);
} else {
__pyx_t_4 = 1;
}
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_jj = __pyx_t_6;
/* … */
if (((__pyx_v_dsw_x > 0.0) != 0)) {
__pyx_t_4 = ((int)__pyx_v_wsize);
} else {
__pyx_t_4 = 1;
}
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_jj = __pyx_t_6;
+0975: djj = dsw_x * (jj - 0.5 * (wsize - 1))
__pyx_v_djj = (__pyx_v_dsw_x * (__pyx_v_jj - (0.5 * (__pyx_v_wsize - 1))));
/* … */
__pyx_v_djj = (__pyx_v_dsw_x * (__pyx_v_jj - (0.5 * (__pyx_v_wsize - 1))));
/* … */
__pyx_v_djj = (__pyx_v_dsw_x * (__pyx_v_jj - (0.5 * (__pyx_v_wsize - 1))));
/* … */
__pyx_v_djj = (__pyx_v_dsw_x * (__pyx_v_jj - (0.5 * (__pyx_v_wsize - 1))));
+0976: err = FVU_interp_tr(errors, I_n, W, I0, u, di[0], dj[0],
__pyx_v_err = __pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_FVU_interp_tr(__pyx_v_errors, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, (__pyx_v_di[0]), (__pyx_v_dj[0]), ((__pyx_v_di[0]) + __pyx_v_dii), ((__pyx_v_dj[0]) + __pyx_v_djj), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_v_err = __pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_FVU_interp_tr(__pyx_v_errors, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, (__pyx_v_di[0]), (__pyx_v_dj[0]), ((__pyx_v_di[0]) + __pyx_v_dii), ((__pyx_v_dj[0]) + __pyx_v_djj), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_v_err = __pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_FVU_interp_tr(__pyx_v_errors, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, (__pyx_v_di[0]), (__pyx_v_dj[0]), ((__pyx_v_di[0]) + __pyx_v_dii), ((__pyx_v_dj[0]) + __pyx_v_djj), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_v_err = __pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_FVU_interp_tr(__pyx_v_errors, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, (__pyx_v_di[0]), (__pyx_v_dj[0]), ((__pyx_v_di[0]) + __pyx_v_dii), ((__pyx_v_dj[0]) + __pyx_v_djj), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
0977: di[0] + dii, dj[0] + djj, ds_y, ds_x, sigma, f)
0978:
+0979: if err < err_min:
__pyx_t_7 = ((__pyx_v_err < __pyx_v_err_min) != 0);
if (__pyx_t_7) {
/* … */
}
}
}
/* … */
__pyx_t_7 = ((__pyx_v_err < __pyx_v_err_min) != 0);
if (__pyx_t_7) {
/* … */
}
}
}
/* … */
__pyx_t_7 = ((__pyx_v_err < __pyx_v_err_min) != 0);
if (__pyx_t_7) {
/* … */
}
}
}
/* … */
__pyx_t_7 = ((__pyx_v_err < __pyx_v_err_min) != 0);
if (__pyx_t_7) {
/* … */
}
}
}
+0980: di_min = dii; dj_min = djj; err_min = err
__pyx_v_di_min = __pyx_v_dii;
__pyx_v_dj_min = __pyx_v_djj;
__pyx_v_err_min = __pyx_v_err;
/* … */
__pyx_v_di_min = __pyx_v_dii;
__pyx_v_dj_min = __pyx_v_djj;
__pyx_v_err_min = __pyx_v_err;
/* … */
__pyx_v_di_min = __pyx_v_dii;
__pyx_v_dj_min = __pyx_v_djj;
__pyx_v_err_min = __pyx_v_err;
/* … */
__pyx_v_di_min = __pyx_v_dii;
__pyx_v_dj_min = __pyx_v_djj;
__pyx_v_err_min = __pyx_v_err;
0981:
+0982: di[0] += di_min; dj[0] += dj_min
__pyx_t_1 = 0; (__pyx_v_di[__pyx_t_1]) = ((__pyx_v_di[__pyx_t_1]) + __pyx_v_di_min); __pyx_t_1 = 0; (__pyx_v_dj[__pyx_t_1]) = ((__pyx_v_dj[__pyx_t_1]) + __pyx_v_dj_min); /* … */ __pyx_t_1 = 0; (__pyx_v_di[__pyx_t_1]) = ((__pyx_v_di[__pyx_t_1]) + __pyx_v_di_min); __pyx_t_1 = 0; (__pyx_v_dj[__pyx_t_1]) = ((__pyx_v_dj[__pyx_t_1]) + __pyx_v_dj_min); /* … */ __pyx_t_1 = 0; (__pyx_v_di[__pyx_t_1]) = ((__pyx_v_di[__pyx_t_1]) + __pyx_v_di_min); __pyx_t_1 = 0; (__pyx_v_dj[__pyx_t_1]) = ((__pyx_v_dj[__pyx_t_1]) + __pyx_v_dj_min); /* … */ __pyx_t_1 = 0; (__pyx_v_di[__pyx_t_1]) = ((__pyx_v_di[__pyx_t_1]) + __pyx_v_di_min); __pyx_t_1 = 0; (__pyx_v_dj[__pyx_t_1]) = ((__pyx_v_dj[__pyx_t_1]) + __pyx_v_dj_min);
0983:
+0984: def tr_gsearch(uint_t[:, :, ::1] I_n not None, float_t[:, ::1] W not None, float_t[:, ::1] I0 not None,
/* Python wrapper */
static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_11tr_gsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6pyrost_3bin_6pyrost_10tr_gsearch[] = "Update the sample pixel translations by minimizing total mean-squared-error\n (:math:$MSE_{total}$). Perform a grid search within the search window of\n `sw_y` size in pixels for sample translations along the vertical axis, and\n of `sw_x` size in pixels for sample translations along the horizontal axis in\n order to minimize the total MSE.\n\n Args:\n I_n (numpy.ndarray) : Measured intensity frames.\n W (numpy.ndarray) : Measured frames' whitefield.\n I0 (numpy.ndarray) : Reference image of the sample.\n u (numpy.ndarray) : The discrete geometrical mapping of the detector\n plane to the reference image.\n di (numpy.ndarray) : Initial sample's translations along the vertical\n detector axis in pixels.\n dj (numpy.ndarray) : Initial sample's translations along the horizontal\n detector axis in pixels.\n sw_y (float) : Search window size in pixels along the vertical detector\n axis.\n sw_x (float) : Search window size in pixels along the horizontal detector\n axis.\n grid_size (int) : Grid size along one of the detector axes. The grid shape\n is then (grid_size, grid_size).\n ds_y (float) : Sampling interval of reference image in pixels along the\n vertical axis.\n ds_x (float) : Sampling interval of reference image in pixels along the\n horizontal axis.\n sigma (float) : The standard deviation of `I_n`.\n loss (str) : Choose between the following loss functions:\n\n * 'Epsilon': Epsilon loss function (epsilon = 0.5)\n * 'Huber' : Huber loss function (k = 1.345)\n * 'L1' : L1 norm loss function.\n * 'L2' : L2 norm loss function.\n\n num_threads (int) : Number of threads.\n\n Returns:\n numpy.ndarray : Updated sample pixel translations.\n\n Notes:\n The error metric as a function of sample shifts is given by:""\n\n .. math::\n\n \\varepsilon_{tr}[n, di^{\\prime}, dj^{\\prime}] = \\frac{1}{Y X}\n \\sum_{i = 0}^Y \\sum_{j = 0}^Y f\\left( \\frac{I[n, i, j] - W[i, j]\n I_{ref}[u[0, i, j] - di[n] - di^{\\prime},\n u[1, i, j] - dj[n] - dj^{\\prime}]}{\\sigma} \\right)\n\n where :math:`f(x)` is L1 norm, L2 norm or Huber loss function.\n ";
static PyMethodDef __pyx_mdef_6pyrost_3bin_6pyrost_11tr_gsearch = {"tr_gsearch", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pyrost_3bin_6pyrost_11tr_gsearch, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_10tr_gsearch};
static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_11tr_gsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_signatures = 0;
PyObject *__pyx_v_args = 0;
PyObject *__pyx_v_kwargs = 0;
CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
PyObject* values[4] = {0,0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 984, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 984, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
}
__pyx_v_signatures = values[0];
__pyx_v_args = values[1];
__pyx_v_kwargs = values[2];
__pyx_v_defaults = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 984, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_10tr_gsearch(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_10tr_gsearch(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
PyObject *__pyx_v_dest_sig = NULL;
Py_ssize_t __pyx_v_i;
PyTypeObject *__pyx_v_ndarray = 0;
__Pyx_memviewslice __pyx_v_memslice;
Py_ssize_t __pyx_v_itemsize;
int __pyx_v_dtype_signed;
char __pyx_v_kind;
int __pyx_v____pyx_uint64_t_is_signed;
int __pyx_v____pyx_uint32_t_is_signed;
PyObject *__pyx_v_arg = NULL;
PyObject *__pyx_v_dtype = NULL;
PyObject *__pyx_v_arg_base = NULL;
PyObject *__pyx_v_candidates = NULL;
PyObject *__pyx_v_sig = NULL;
int __pyx_v_match_found;
PyObject *__pyx_v_src_sig = NULL;
PyObject *__pyx_v_dst_type = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("tr_gsearch", 0);
__Pyx_INCREF(__pyx_v_kwargs);
__pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{ Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
}
}
__pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_3 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 984, __pyx_L1_error)
__pyx_t_3 = ((!__pyx_t_4) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L4_bool_binop_done:;
if (__pyx_t_2) {
__Pyx_INCREF(Py_None);
__Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
}
__pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_v_itemsize = -1L;
__pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
__pyx_v____pyx_uint32_t_is_signed = (!((((__pyx_t_5numpy_uint32_t)-1L) > 0) != 0));
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 984, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 984, __pyx_L1_error)
__pyx_t_2 = ((0 < __pyx_t_5) != 0);
if (__pyx_t_2) {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 984, __pyx_L1_error)
}
__pyx_t_1 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 0);
__Pyx_INCREF(__pyx_t_1);
__pyx_v_arg = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L6;
}
__pyx_t_3 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L7_bool_binop_done;
}
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 984, __pyx_L1_error)
}
__pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_I_n, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 984, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_4 != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L7_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 984, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_I_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_arg = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L6;
}
/*else*/ {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 984, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 984, __pyx_L1_error)
__pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_INCREF(__pyx_int_12);
__Pyx_GIVEREF(__pyx_int_12);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_12);
__Pyx_INCREF(__pyx_n_s_s);
__Pyx_GIVEREF(__pyx_n_s_s);
PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_Raise(__pyx_t_6, 0, 0, 0);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__PYX_ERR(0, 984, __pyx_L1_error)
}
__pyx_L6:;
while (1) {
__pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_dtype = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L12;
}
__pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_arg_base = __pyx_t_6;
__pyx_t_6 = 0;
__pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_dtype = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L13;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__pyx_v_dtype = Py_None;
}
__pyx_L13:;
goto __pyx_L12;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__pyx_v_dtype = Py_None;
}
__pyx_L12:;
__pyx_v_itemsize = -1L;
__pyx_t_2 = (__pyx_v_dtype != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_itemsize = __pyx_t_5;
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_kind = __pyx_t_7;
__pyx_v_dtype_signed = (__pyx_v_kind == 'i');
switch (__pyx_v_kind) {
case 'i':
case 'u':
__pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L16_bool_binop_done;
}
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L16_bool_binop_done;
}
__pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L16_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 984, __pyx_L1_error)
goto __pyx_L10_break;
}
__pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint32_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L20_bool_binop_done;
}
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L20_bool_binop_done;
}
__pyx_t_2 = ((!((__pyx_v____pyx_uint32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L20_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 984, __pyx_L1_error)
goto __pyx_L10_break;
}
break;
case 'f':
break;
case 'c':
break;
case 'O':
break;
default: break;
}
}
}
__pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L24_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L24_bool_binop_done:;
if (__pyx_t_3) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_3 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_3) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 984, __pyx_L1_error)
goto __pyx_L10_break;
}
/*else*/ {
PyErr_Clear();
}
}
__pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L28_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint32_t))) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L28_bool_binop_done:;
if (__pyx_t_3) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_3 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_3) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 984, __pyx_L1_error)
goto __pyx_L10_break;
}
/*else*/ {
PyErr_Clear();
}
}
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 984, __pyx_L1_error)
goto __pyx_L10_break;
}
__pyx_L10_break:;
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 984, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 984, __pyx_L1_error)
__pyx_t_3 = ((1 < __pyx_t_5) != 0);
if (__pyx_t_3) {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 984, __pyx_L1_error)
}
__pyx_t_6 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 1);
__Pyx_INCREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
__pyx_t_6 = 0;
goto __pyx_L31;
}
__pyx_t_2 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_2 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_3 = __pyx_t_4;
goto __pyx_L32_bool_binop_done;
}
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 984, __pyx_L1_error)
}
__pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_W, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 984, __pyx_L1_error)
__pyx_t_2 = (__pyx_t_4 != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L32_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 984, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_W); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
__pyx_t_6 = 0;
goto __pyx_L31;
}
/*else*/ {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 984, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 984, __pyx_L1_error)
__pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_int_12);
__Pyx_GIVEREF(__pyx_int_12);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_12);
__Pyx_INCREF(__pyx_n_s_s);
__Pyx_GIVEREF(__pyx_n_s_s);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 984, __pyx_L1_error)
}
__pyx_L31:;
while (1) {
__pyx_t_3 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
__pyx_t_1 = 0;
goto __pyx_L37;
}
__pyx_t_3 = __pyx_memoryview_check(__pyx_v_arg);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_arg_base, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
__pyx_t_1 = 0;
goto __pyx_L38;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
}
__pyx_L38:;
goto __pyx_L37;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
}
__pyx_L37:;
__pyx_v_itemsize = -1L;
__pyx_t_3 = (__pyx_v_dtype != Py_None);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_itemsize = __pyx_t_5;
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_1); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_kind = __pyx_t_7;
__pyx_v_dtype_signed = (__pyx_v_kind == 'i');
switch (__pyx_v_kind) {
case 'i':
case 'u':
break;
case 'f':
__pyx_t_3 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L41_bool_binop_done;
}
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 2) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L41_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 984, __pyx_L1_error)
goto __pyx_L35_break;
}
__pyx_t_3 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L44_bool_binop_done;
}
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 2) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L44_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 984, __pyx_L1_error)
goto __pyx_L35_break;
}
break;
case 'c':
break;
case 'O':
break;
default: break;
}
}
}
__pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L47_bool_binop_done;
}
__pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L47_bool_binop_done:;
if (__pyx_t_2) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_2 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_2) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 984, __pyx_L1_error)
goto __pyx_L35_break;
}
/*else*/ {
PyErr_Clear();
}
}
__pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L51_bool_binop_done;
}
__pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L51_bool_binop_done:;
if (__pyx_t_2) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_2 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_2) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 984, __pyx_L1_error)
goto __pyx_L35_break;
}
/*else*/ {
PyErr_Clear();
}
}
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 984, __pyx_L1_error)
goto __pyx_L35_break;
}
__pyx_L35_break:;
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_candidates = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_5 = 0;
if (unlikely(__pyx_v_signatures == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 984, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_9, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_10);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_v_match_found = 0;
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_14 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
__pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
if (likely(__pyx_t_14)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
__Pyx_INCREF(__pyx_t_14);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_13, function);
}
}
__pyx_t_12 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2);
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
__pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
if (likely(__pyx_t_12)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
__Pyx_INCREF(__pyx_t_12);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_13, function);
}
}
__pyx_t_6 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__3);
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_15 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 984, __pyx_L1_error)
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_i = __pyx_t_17;
__pyx_t_6 = PyList_GET_ITEM(__pyx_v_dest_sig, __pyx_v_i);
__Pyx_INCREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_2 = (__pyx_v_dst_type != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_13 = PyObject_RichCompare(__pyx_t_6, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
if (__pyx_t_3) {
__pyx_v_match_found = 1;
goto __pyx_L59;
}
/*else*/ {
__pyx_v_match_found = 0;
goto __pyx_L57_break;
}
__pyx_L59:;
}
}
__pyx_L57_break:;
__pyx_t_3 = (__pyx_v_match_found != 0);
if (__pyx_t_3) {
__pyx_t_18 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 984, __pyx_L1_error)
}
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
__pyx_t_2 = ((!__pyx_t_3) != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 984, __pyx_L1_error)
}
__pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 984, __pyx_L1_error)
__pyx_t_2 = ((__pyx_t_9 > 1) != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 984, __pyx_L1_error)
}
/*else*/ {
__Pyx_XDECREF(__pyx_r);
if (unlikely(__pyx_v_signatures == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 984, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), PyList_GET_ITEM(__pyx_v_candidates, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_AddTraceback("pyrost.bin.pyrost.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_dest_sig);
__Pyx_XDECREF(__pyx_v_ndarray);
__Pyx_XDECREF(__pyx_v_arg);
__Pyx_XDECREF(__pyx_v_dtype);
__Pyx_XDECREF(__pyx_v_arg_base);
__Pyx_XDECREF(__pyx_v_candidates);
__Pyx_XDECREF(__pyx_v_sig);
__Pyx_XDECREF(__pyx_v_src_sig);
__Pyx_XDECREF(__pyx_v_dst_type);
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_216__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults44, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults44, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults44, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults44, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyArrayObject *__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_73tr_gsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_6pyrost_3bin_6pyrost_73tr_gsearch = {"__pyx_fuse_0_0tr_gsearch", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_73tr_gsearch, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_10tr_gsearch};
static PyArrayObject *__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_73tr_gsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_sw_y;
double __pyx_v_sw_x;
unsigned int __pyx_v_grid_size;
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
CYTHON_UNUSED unsigned int __pyx_v_num_threads;
PyArrayObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("tr_gsearch (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_sw_y,&__pyx_n_s_sw_x,&__pyx_n_s_grid_size,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults44 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults44, __pyx_self);
values[12] = __pyx_dynamic_args->__pyx_arg_loss;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 1); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 2); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 3); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 4); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 5); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 6); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 7); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grid_size)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 8); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 9); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 10:
if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 10); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 11:
if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 11); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 12:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[12] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 13:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[13] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "tr_gsearch") < 0)) __PYX_ERR(0, 984, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 984, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 984, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 984, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 985, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 985, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 985, __pyx_L3_error)
__pyx_v_sw_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_sw_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 986, __pyx_L3_error)
__pyx_v_sw_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_sw_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 986, __pyx_L3_error)
__pyx_v_grid_size = __Pyx_PyInt_As_unsigned_int(values[8]); if (unlikely((__pyx_v_grid_size == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 986, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 986, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[10]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 986, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[11]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 986, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[12]);
if (values[13]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[13]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 987, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 984, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.tr_gsearch", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 984, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 984, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 984, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 985, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 985, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 985, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 987, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_72tr_gsearch(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_grid_size, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyArrayObject *__pyx_pf_6pyrost_3bin_6pyrost_72tr_gsearch(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_grid_size, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, PyObject *__pyx_v_loss, CYTHON_UNUSED unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
int __pyx_v_N;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_i;
int __pyx_v_j;
int __pyx_v_k;
npy_intp *__pyx_v_buf_shape;
__Pyx_memviewslice __pyx_v_errors = { 0, 0, { 0 }, { 0 }, { 0 } };
npy_intp *__pyx_v_dij_shape;
PyArrayObject *__pyx_v_dij = 0;
__Pyx_memviewslice __pyx_v__dij = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_0_0tr_gsearch", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_24, 1);
__Pyx_AddTraceback("pyrost.bin.pyrost.tr_gsearch", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XDEC_MEMVIEW(&__pyx_v_errors, 1);
__Pyx_XDECREF((PyObject *)__pyx_v_dij);
__PYX_XDEC_MEMVIEW(&__pyx_v__dij, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF((PyObject *)__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_218__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults45, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults45, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults45, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults45, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyArrayObject *__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_75tr_gsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_6pyrost_3bin_6pyrost_75tr_gsearch = {"__pyx_fuse_0_1tr_gsearch", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_75tr_gsearch, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_10tr_gsearch};
static PyArrayObject *__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_75tr_gsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_sw_y;
double __pyx_v_sw_x;
unsigned int __pyx_v_grid_size;
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
CYTHON_UNUSED unsigned int __pyx_v_num_threads;
PyArrayObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("tr_gsearch (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_sw_y,&__pyx_n_s_sw_x,&__pyx_n_s_grid_size,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults45 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults45, __pyx_self);
values[12] = __pyx_dynamic_args->__pyx_arg_loss;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 1); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 2); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 3); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 4); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 5); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 6); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 7); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grid_size)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 8); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 9); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 10:
if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 10); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 11:
if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 11); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 12:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[12] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 13:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[13] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "tr_gsearch") < 0)) __PYX_ERR(0, 984, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 984, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 984, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 984, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 985, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 985, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 985, __pyx_L3_error)
__pyx_v_sw_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_sw_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 986, __pyx_L3_error)
__pyx_v_sw_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_sw_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 986, __pyx_L3_error)
__pyx_v_grid_size = __Pyx_PyInt_As_unsigned_int(values[8]); if (unlikely((__pyx_v_grid_size == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 986, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 986, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[10]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 986, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[11]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 986, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[12]);
if (values[13]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[13]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 987, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 984, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.tr_gsearch", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 984, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 984, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 984, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 985, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 985, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 985, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 987, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_74tr_gsearch(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_grid_size, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyArrayObject *__pyx_pf_6pyrost_3bin_6pyrost_74tr_gsearch(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_grid_size, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, PyObject *__pyx_v_loss, CYTHON_UNUSED unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
int __pyx_v_N;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_i;
int __pyx_v_j;
int __pyx_v_k;
npy_intp *__pyx_v_buf_shape;
__Pyx_memviewslice __pyx_v_errors = { 0, 0, { 0 }, { 0 }, { 0 } };
npy_intp *__pyx_v_dij_shape;
PyArrayObject *__pyx_v_dij = 0;
__Pyx_memviewslice __pyx_v__dij = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_0_1tr_gsearch", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_24, 1);
__Pyx_AddTraceback("pyrost.bin.pyrost.tr_gsearch", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XDEC_MEMVIEW(&__pyx_v_errors, 1);
__Pyx_XDECREF((PyObject *)__pyx_v_dij);
__PYX_XDEC_MEMVIEW(&__pyx_v__dij, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF((PyObject *)__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_220__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults46, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults46, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults46, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults46, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyArrayObject *__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_77tr_gsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_6pyrost_3bin_6pyrost_77tr_gsearch = {"__pyx_fuse_1_0tr_gsearch", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_77tr_gsearch, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_10tr_gsearch};
static PyArrayObject *__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_77tr_gsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_sw_y;
double __pyx_v_sw_x;
unsigned int __pyx_v_grid_size;
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
CYTHON_UNUSED unsigned int __pyx_v_num_threads;
PyArrayObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("tr_gsearch (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_sw_y,&__pyx_n_s_sw_x,&__pyx_n_s_grid_size,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults46 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults46, __pyx_self);
values[12] = __pyx_dynamic_args->__pyx_arg_loss;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 1); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 2); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 3); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 4); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 5); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 6); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 7); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grid_size)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 8); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 9); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 10:
if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 10); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 11:
if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 11); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 12:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[12] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 13:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[13] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "tr_gsearch") < 0)) __PYX_ERR(0, 984, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 984, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 984, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 984, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 985, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 985, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 985, __pyx_L3_error)
__pyx_v_sw_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_sw_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 986, __pyx_L3_error)
__pyx_v_sw_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_sw_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 986, __pyx_L3_error)
__pyx_v_grid_size = __Pyx_PyInt_As_unsigned_int(values[8]); if (unlikely((__pyx_v_grid_size == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 986, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 986, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[10]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 986, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[11]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 986, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[12]);
if (values[13]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[13]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 987, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 984, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.tr_gsearch", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 984, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 984, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 984, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 985, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 985, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 985, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 987, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_76tr_gsearch(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_grid_size, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyArrayObject *__pyx_pf_6pyrost_3bin_6pyrost_76tr_gsearch(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_grid_size, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, PyObject *__pyx_v_loss, CYTHON_UNUSED unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
int __pyx_v_N;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_i;
int __pyx_v_j;
int __pyx_v_k;
npy_intp *__pyx_v_buf_shape;
__Pyx_memviewslice __pyx_v_errors = { 0, 0, { 0 }, { 0 }, { 0 } };
npy_intp *__pyx_v_dij_shape;
PyArrayObject *__pyx_v_dij = 0;
__Pyx_memviewslice __pyx_v__dij = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_1_0tr_gsearch", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_24, 1);
__Pyx_AddTraceback("pyrost.bin.pyrost.tr_gsearch", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XDEC_MEMVIEW(&__pyx_v_errors, 1);
__Pyx_XDECREF((PyObject *)__pyx_v_dij);
__PYX_XDEC_MEMVIEW(&__pyx_v__dij, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF((PyObject *)__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_222__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults47, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults47, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults47, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults47, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyArrayObject *__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_79tr_gsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_6pyrost_3bin_6pyrost_79tr_gsearch = {"__pyx_fuse_1_1tr_gsearch", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_79tr_gsearch, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_10tr_gsearch};
static PyArrayObject *__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_79tr_gsearch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_sw_y;
double __pyx_v_sw_x;
unsigned int __pyx_v_grid_size;
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
CYTHON_UNUSED unsigned int __pyx_v_num_threads;
PyArrayObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("tr_gsearch (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_sw_y,&__pyx_n_s_sw_x,&__pyx_n_s_grid_size,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults47 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults47, __pyx_self);
values[12] = __pyx_dynamic_args->__pyx_arg_loss;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 1); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 2); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 3); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 4); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 5); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 6); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 7); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grid_size)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 8); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 9); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 10:
if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 10); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 11:
if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, 11); __PYX_ERR(0, 984, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 12:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[12] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 13:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[13] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "tr_gsearch") < 0)) __PYX_ERR(0, 984, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 984, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 984, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 984, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 985, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 985, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 985, __pyx_L3_error)
__pyx_v_sw_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_sw_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 986, __pyx_L3_error)
__pyx_v_sw_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_sw_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 986, __pyx_L3_error)
__pyx_v_grid_size = __Pyx_PyInt_As_unsigned_int(values[8]); if (unlikely((__pyx_v_grid_size == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 986, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 986, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[10]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 986, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[11]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 986, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[12]);
if (values[13]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[13]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 987, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("tr_gsearch", 0, 12, 14, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 984, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.tr_gsearch", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 984, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 984, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 984, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 985, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 985, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 985, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 987, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_78tr_gsearch(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_grid_size, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyArrayObject *__pyx_pf_6pyrost_3bin_6pyrost_78tr_gsearch(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_sw_y, double __pyx_v_sw_x, unsigned int __pyx_v_grid_size, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, PyObject *__pyx_v_loss, CYTHON_UNUSED unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
int __pyx_v_N;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_i;
int __pyx_v_j;
int __pyx_v_k;
npy_intp *__pyx_v_buf_shape;
__Pyx_memviewslice __pyx_v_errors = { 0, 0, { 0 }, { 0 }, { 0 } };
npy_intp *__pyx_v_dij_shape;
PyArrayObject *__pyx_v_dij = 0;
__Pyx_memviewslice __pyx_v__dij = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_1_1tr_gsearch", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_24, 1);
__Pyx_AddTraceback("pyrost.bin.pyrost.tr_gsearch", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XDEC_MEMVIEW(&__pyx_v_errors, 1);
__Pyx_XDECREF((PyObject *)__pyx_v_dij);
__PYX_XDEC_MEMVIEW(&__pyx_v__dij, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF((PyObject *)__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_GIVEREF(__pyx_n_u_Huber);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_Huber);
__Pyx_GIVEREF(__pyx_t_5);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5);
__pyx_t_5 = 0;
/* … */
__pyx_tuple__43 = PyTuple_Pack(27, __pyx_n_s_I_n, __pyx_n_s_W, __pyx_n_s_I0, __pyx_n_s_u, __pyx_n_s_di, __pyx_n_s_dj, __pyx_n_s_sw_y, __pyx_n_s_sw_x, __pyx_n_s_grid_size, __pyx_n_s_ds_y, __pyx_n_s_ds_x, __pyx_n_s_sigma, __pyx_n_s_loss, __pyx_n_s_num_threads, __pyx_n_s_f, __pyx_n_s_type_num, __pyx_n_s_N, __pyx_n_s_Y, __pyx_n_s_X, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_k, __pyx_n_s_buf_shape, __pyx_n_s_errors, __pyx_n_s_dij_shape, __pyx_n_s_dij, __pyx_n_s_dij_2); if (unlikely(!__pyx_tuple__43)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__43);
__Pyx_GIVEREF(__pyx_tuple__43);
__pyx_t_5 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_return, __pyx_n_u_ndarray) < 0) __PYX_ERR(0, 984, __pyx_L1_error)
__pyx_t_2 = __pyx_FusedFunction_New(&__pyx_fuse_0_0__pyx_mdef_6pyrost_3bin_6pyrost_73tr_gsearch, 0, __pyx_n_s_tr_gsearch, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__44)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_2, sizeof(__pyx_defaults44), 1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults44, __pyx_t_2)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults44, __pyx_t_2)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_1);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_2, __pyx_pf_6pyrost_3bin_6pyrost_216__defaults__);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_4);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (PyDict_SetItem(__pyx_t_5, __pyx_kp_s_uint64_t_float64_t, __pyx_t_2) < 0) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_return, __pyx_n_u_ndarray) < 0) __PYX_ERR(0, 984, __pyx_L1_error)
__pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_0_1__pyx_mdef_6pyrost_3bin_6pyrost_75tr_gsearch, 0, __pyx_n_s_tr_gsearch, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__44)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults45), 1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults45, __pyx_t_4)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults45, __pyx_t_4)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pyrost_3bin_6pyrost_218__defaults__);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_4, __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (PyDict_SetItem(__pyx_t_5, __pyx_kp_s_uint64_t_float32_t, __pyx_t_4) < 0) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_return, __pyx_n_u_ndarray) < 0) __PYX_ERR(0, 984, __pyx_L1_error)
__pyx_t_2 = __pyx_FusedFunction_New(&__pyx_fuse_1_0__pyx_mdef_6pyrost_3bin_6pyrost_77tr_gsearch, 0, __pyx_n_s_tr_gsearch, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__44)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_2, sizeof(__pyx_defaults46), 1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults46, __pyx_t_2)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults46, __pyx_t_2)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_1);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_2, __pyx_pf_6pyrost_3bin_6pyrost_220__defaults__);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_4);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (PyDict_SetItem(__pyx_t_5, __pyx_kp_s_uint32_t_float64_t, __pyx_t_2) < 0) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_return, __pyx_n_u_ndarray) < 0) __PYX_ERR(0, 984, __pyx_L1_error)
__pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_1_1__pyx_mdef_6pyrost_3bin_6pyrost_79tr_gsearch, 0, __pyx_n_s_tr_gsearch, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__44)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults47), 1)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults47, __pyx_t_4)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults47, __pyx_t_4)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pyrost_3bin_6pyrost_222__defaults__);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_4, __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (PyDict_SetItem(__pyx_t_5, __pyx_kp_s_uint32_t_float32_t, __pyx_t_4) < 0) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = __pyx_FusedFunction_New(&__pyx_mdef_6pyrost_3bin_6pyrost_11tr_gsearch, 0, __pyx_n_s_tr_gsearch, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__44)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
((__pyx_FusedFunctionObject *) __pyx_t_4)->__signatures__ = __pyx_t_5;
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_5 = 0;
if (PyDict_SetItem(__pyx_d, __pyx_n_s_tr_gsearch, __pyx_t_4) < 0) __PYX_ERR(0, 984, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__44 = (PyObject*)__Pyx_PyCode_New(14, 0, 27, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__43, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pyrost_bin_pyrost_pyx, __pyx_n_s_tr_gsearch, 984, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__44)) __PYX_ERR(0, 984, __pyx_L1_error)
0985: float_t[:, :, ::1] u not None, float_t[::1] di not None, float_t[::1] dj not None,
0986: double sw_y, double sw_x, unsigned grid_size, double ds_y, double ds_x, double sigma,
+0987: str loss='Huber', unsigned num_threads=1) -> np.ndarray:
__pyx_t_5 = __Pyx_PyInt_From_long(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5);
0988: r"""Update the sample pixel translations by minimizing total mean-squared-error
0989: (:math:$MSE_{total}$). Perform a grid search within the search window of
0990: `sw_y` size in pixels for sample translations along the vertical axis, and
0991: of `sw_x` size in pixels for sample translations along the horizontal axis in
0992: order to minimize the total MSE.
0993:
0994: Args:
0995: I_n (numpy.ndarray) : Measured intensity frames.
0996: W (numpy.ndarray) : Measured frames' whitefield.
0997: I0 (numpy.ndarray) : Reference image of the sample.
0998: u (numpy.ndarray) : The discrete geometrical mapping of the detector
0999: plane to the reference image.
1000: di (numpy.ndarray) : Initial sample's translations along the vertical
1001: detector axis in pixels.
1002: dj (numpy.ndarray) : Initial sample's translations along the horizontal
1003: detector axis in pixels.
1004: sw_y (float) : Search window size in pixels along the vertical detector
1005: axis.
1006: sw_x (float) : Search window size in pixels along the horizontal detector
1007: axis.
1008: grid_size (int) : Grid size along one of the detector axes. The grid shape
1009: is then (grid_size, grid_size).
1010: ds_y (float) : Sampling interval of reference image in pixels along the
1011: vertical axis.
1012: ds_x (float) : Sampling interval of reference image in pixels along the
1013: horizontal axis.
1014: sigma (float) : The standard deviation of `I_n`.
1015: loss (str) : Choose between the following loss functions:
1016:
1017: * 'Epsilon': Epsilon loss function (epsilon = 0.5)
1018: * 'Huber' : Huber loss function (k = 1.345)
1019: * 'L1' : L1 norm loss function.
1020: * 'L2' : L2 norm loss function.
1021:
1022: num_threads (int) : Number of threads.
1023:
1024: Returns:
1025: numpy.ndarray : Updated sample pixel translations.
1026:
1027: Notes:
1028: The error metric as a function of sample shifts is given by:
1029:
1030: .. math::
1031:
1032: \varepsilon_{tr}[n, di^{\prime}, dj^{\prime}] = \frac{1}{Y X}
1033: \sum_{i = 0}^Y \sum_{j = 0}^Y f\left( \frac{I[n, i, j] - W[i, j]
1034: I_{ref}[u[0, i, j] - di[n] - di^{\prime},
1035: u[1, i, j] - dj[n] - dj^{\prime}]}{\sigma} \right)
1036:
1037: where :math:`f(x)` is L1 norm, L2 norm or Huber loss function.
1038: """
+1039: if ds_y <= 0.0 or ds_x <= 0.0:
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
+1040: raise ValueError('Sampling intervals must be positive')
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 1040, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 1040, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 1040, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 1040, __pyx_L1_error)
1041:
+1042: cdef loss_func f = choose_loss(loss)
__pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss); /* … */ __pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss); /* … */ __pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss); /* … */ __pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss);
1043:
+1044: cdef int type_num = np.PyArray_TYPE(W.base)
__pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1044, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1044, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1044, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1044, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1045: cdef int N = I_n.shape[0], Y = I_n.shape[1], X = I_n.shape[2], i, j, k
__pyx_v_N = (__pyx_v_I_n.shape[0]); __pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_N = (__pyx_v_I_n.shape[0]); __pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_N = (__pyx_v_I_n.shape[0]); __pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_N = (__pyx_v_I_n.shape[0]); __pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]);
1046:
+1047: cdef np.npy_intp *buf_shape = [Y, X]
__pyx_t_5[0] = __pyx_v_Y; __pyx_t_5[1] = __pyx_v_X; __pyx_v_buf_shape = __pyx_t_5; /* … */ __pyx_t_5[0] = __pyx_v_Y; __pyx_t_5[1] = __pyx_v_X; __pyx_v_buf_shape = __pyx_t_5; /* … */ __pyx_t_5[0] = __pyx_v_Y; __pyx_t_5[1] = __pyx_v_X; __pyx_v_buf_shape = __pyx_t_5; /* … */ __pyx_t_5[0] = __pyx_v_Y; __pyx_t_5[1] = __pyx_v_X; __pyx_v_buf_shape = __pyx_t_5;
+1048: cdef float_t[:, ::1] errors = np.PyArray_SimpleNew(2, buf_shape, type_num)
__pyx_t_4 = PyArray_SimpleNew(2, __pyx_v_buf_shape, __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1048, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_errors = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __pyx_t_4 = PyArray_SimpleNew(2, __pyx_v_buf_shape, __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1048, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_errors = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __pyx_t_4 = PyArray_SimpleNew(2, __pyx_v_buf_shape, __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1048, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_errors = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __pyx_t_4 = PyArray_SimpleNew(2, __pyx_v_buf_shape, __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1048, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_errors = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL;
1049:
+1050: cdef np.npy_intp *dij_shape = [N, 2]
__pyx_t_7[0] = __pyx_v_N; __pyx_t_7[1] = 2; __pyx_v_dij_shape = __pyx_t_7; /* … */ __pyx_t_7[0] = __pyx_v_N; __pyx_t_7[1] = 2; __pyx_v_dij_shape = __pyx_t_7; /* … */ __pyx_t_7[0] = __pyx_v_N; __pyx_t_7[1] = 2; __pyx_v_dij_shape = __pyx_t_7; /* … */ __pyx_t_7[0] = __pyx_v_N; __pyx_t_7[1] = 2; __pyx_v_dij_shape = __pyx_t_7;
+1051: cdef np.ndarray dij = np.PyArray_SimpleNew(2, dij_shape, type_num)
__pyx_t_4 = PyArray_SimpleNew(2, __pyx_v_dij_shape, __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1051, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1051, __pyx_L1_error) __pyx_v_dij = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_SimpleNew(2, __pyx_v_dij_shape, __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1051, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1051, __pyx_L1_error) __pyx_v_dij = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_SimpleNew(2, __pyx_v_dij_shape, __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1051, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1051, __pyx_L1_error) __pyx_v_dij = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_SimpleNew(2, __pyx_v_dij_shape, __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1051, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1051, __pyx_L1_error) __pyx_v_dij = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0;
+1052: cdef float_t[:, ::1] _dij = dij
__pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(((PyObject *)__pyx_v_dij), PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1052, __pyx_L1_error) __pyx_v__dij = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(((PyObject *)__pyx_v_dij), PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1052, __pyx_L1_error) __pyx_v__dij = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(((PyObject *)__pyx_v_dij), PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1052, __pyx_L1_error) __pyx_v__dij = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(((PyObject *)__pyx_v_dij), PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1052, __pyx_L1_error) __pyx_v__dij = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL;
1053:
+1054: for k in prange(X, schedule='guided', num_threads=num_threads, nogil=True):
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_8 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_10 = (__pyx_t_8 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_10 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_8 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_10 = (__pyx_t_8 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_10 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_10; __pyx_t_9++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_9);
/* Initialize private variables to invalid values */
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_8 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_10 = (__pyx_t_8 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_10 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_8 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_10 = (__pyx_t_8 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_10 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_10; __pyx_t_9++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_9);
/* Initialize private variables to invalid values */
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_8 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_10 = (__pyx_t_8 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_10 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_8 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_10 = (__pyx_t_8 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_10 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_10; __pyx_t_9++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_9);
/* Initialize private variables to invalid values */
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_8 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_10 = (__pyx_t_8 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_10 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_8 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_10 = (__pyx_t_8 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_10 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_10; __pyx_t_9++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_9);
/* Initialize private variables to invalid values */
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
+1055: for j in range(Y):
__pyx_t_11 = __pyx_v_Y;
__pyx_t_12 = __pyx_t_11;
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
__pyx_v_j = __pyx_t_13;
/* … */
__pyx_t_11 = __pyx_v_Y;
__pyx_t_12 = __pyx_t_11;
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
__pyx_v_j = __pyx_t_13;
/* … */
__pyx_t_11 = __pyx_v_Y;
__pyx_t_12 = __pyx_t_11;
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
__pyx_v_j = __pyx_t_13;
/* … */
__pyx_t_11 = __pyx_v_Y;
__pyx_t_12 = __pyx_t_11;
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
__pyx_v_j = __pyx_t_13;
+1056: if W[j, k] > 0.0:
__pyx_t_14 = __pyx_v_j;
__pyx_t_15 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_14 * __pyx_v_W.strides[0]) )) + __pyx_t_15)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L15;
}
/* … */
__pyx_t_14 = __pyx_v_j;
__pyx_t_15 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_14 * __pyx_v_W.strides[0]) )) + __pyx_t_15)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L15;
}
/* … */
__pyx_t_14 = __pyx_v_j;
__pyx_t_15 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_14 * __pyx_v_W.strides[0]) )) + __pyx_t_15)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L15;
}
/* … */
__pyx_t_14 = __pyx_v_j;
__pyx_t_15 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_14 * __pyx_v_W.strides[0]) )) + __pyx_t_15)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L15;
}
+1057: errors[j, k] = FVU_interp(I_n, W[j, k], I0, di, dj, j, k,
__pyx_t_15 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
/* … */
__pyx_t_22 = __pyx_v_j;
__pyx_t_23 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_errors.data + __pyx_t_22 * __pyx_v_errors.strides[0]) )) + __pyx_t_23)) )) = __pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_15 * __pyx_v_W.strides[0]) )) + __pyx_t_14)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_16 * __pyx_v_u.strides[0]) ) + __pyx_t_17 * __pyx_v_u.strides[1]) )) + __pyx_t_18)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_19 * __pyx_v_u.strides[0]) ) + __pyx_t_20 * __pyx_v_u.strides[1]) )) + __pyx_t_21)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_t_15 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
/* … */
__pyx_t_22 = __pyx_v_j;
__pyx_t_23 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_errors.data + __pyx_t_22 * __pyx_v_errors.strides[0]) )) + __pyx_t_23)) )) = __pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_15 * __pyx_v_W.strides[0]) )) + __pyx_t_14)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_16 * __pyx_v_u.strides[0]) ) + __pyx_t_17 * __pyx_v_u.strides[1]) )) + __pyx_t_18)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_19 * __pyx_v_u.strides[0]) ) + __pyx_t_20 * __pyx_v_u.strides[1]) )) + __pyx_t_21)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_t_15 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
/* … */
__pyx_t_22 = __pyx_v_j;
__pyx_t_23 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_errors.data + __pyx_t_22 * __pyx_v_errors.strides[0]) )) + __pyx_t_23)) )) = __pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_15 * __pyx_v_W.strides[0]) )) + __pyx_t_14)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_16 * __pyx_v_u.strides[0]) ) + __pyx_t_17 * __pyx_v_u.strides[1]) )) + __pyx_t_18)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_19 * __pyx_v_u.strides[0]) ) + __pyx_t_20 * __pyx_v_u.strides[1]) )) + __pyx_t_21)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_t_15 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
/* … */
__pyx_t_22 = __pyx_v_j;
__pyx_t_23 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_errors.data + __pyx_t_22 * __pyx_v_errors.strides[0]) )) + __pyx_t_23)) )) = __pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_15 * __pyx_v_W.strides[0]) )) + __pyx_t_14)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_16 * __pyx_v_u.strides[0]) ) + __pyx_t_17 * __pyx_v_u.strides[1]) )) + __pyx_t_18)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_19 * __pyx_v_u.strides[0]) ) + __pyx_t_20 * __pyx_v_u.strides[1]) )) + __pyx_t_21)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
+1058: u[0, j, k], u[1, j, k], ds_y, ds_x, sigma, f)
__pyx_t_16 = 0;
__pyx_t_17 = __pyx_v_j;
__pyx_t_18 = __pyx_v_k;
__pyx_t_19 = 1;
__pyx_t_20 = __pyx_v_j;
__pyx_t_21 = __pyx_v_k;
/* … */
__pyx_t_16 = 0;
__pyx_t_17 = __pyx_v_j;
__pyx_t_18 = __pyx_v_k;
__pyx_t_19 = 1;
__pyx_t_20 = __pyx_v_j;
__pyx_t_21 = __pyx_v_k;
/* … */
__pyx_t_16 = 0;
__pyx_t_17 = __pyx_v_j;
__pyx_t_18 = __pyx_v_k;
__pyx_t_19 = 1;
__pyx_t_20 = __pyx_v_j;
__pyx_t_21 = __pyx_v_k;
/* … */
__pyx_t_16 = 0;
__pyx_t_17 = __pyx_v_j;
__pyx_t_18 = __pyx_v_k;
__pyx_t_19 = 1;
__pyx_t_20 = __pyx_v_j;
__pyx_t_21 = __pyx_v_k;
1059: else:
+1060: errors[j, k] = 0.0
/*else*/ {
__pyx_t_21 = __pyx_v_j;
__pyx_t_20 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_errors.data + __pyx_t_21 * __pyx_v_errors.strides[0]) )) + __pyx_t_20)) )) = 0.0;
}
__pyx_L15:;
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
/*else*/ {
__pyx_t_21 = __pyx_v_j;
__pyx_t_20 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_errors.data + __pyx_t_21 * __pyx_v_errors.strides[0]) )) + __pyx_t_20)) )) = 0.0;
}
__pyx_L15:;
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
/*else*/ {
__pyx_t_21 = __pyx_v_j;
__pyx_t_20 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_errors.data + __pyx_t_21 * __pyx_v_errors.strides[0]) )) + __pyx_t_20)) )) = 0.0;
}
__pyx_L15:;
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
/*else*/ {
__pyx_t_21 = __pyx_v_j;
__pyx_t_20 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_errors.data + __pyx_t_21 * __pyx_v_errors.strides[0]) )) + __pyx_t_20)) )) = 0.0;
}
__pyx_L15:;
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
1061:
+1062: for i in prange(N, schedule='guided', num_threads=num_threads, nogil=True):
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_10 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_8 = (__pyx_t_10 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_8 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) schedule(guided) __pyx_t_10 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_8 = (__pyx_t_10 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_8 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_9);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L20;
}
__pyx_L20:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_10 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_8 = (__pyx_t_10 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_8 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) schedule(guided) __pyx_t_10 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_8 = (__pyx_t_10 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_8 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_9);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L20;
}
__pyx_L20:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_10 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_8 = (__pyx_t_10 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_8 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) schedule(guided) __pyx_t_10 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_8 = (__pyx_t_10 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_8 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_9);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L20;
}
__pyx_L20:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_10 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_8 = (__pyx_t_10 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_8 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) schedule(guided) __pyx_t_10 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_8 = (__pyx_t_10 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_8 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_9);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L20;
}
__pyx_L20:;
}
}
+1063: _dij[i, 0] = di[i]; _dij[i, 1] = dj[i]
__pyx_t_20 = __pyx_v_i;
__pyx_t_21 = __pyx_v_i;
__pyx_t_19 = 0;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v__dij.data + __pyx_t_21 * __pyx_v__dij.strides[0]) )) + __pyx_t_19)) )) = (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_di.data) + __pyx_t_20)) )));
__pyx_t_20 = __pyx_v_i;
__pyx_t_19 = __pyx_v_i;
__pyx_t_21 = 1;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v__dij.data + __pyx_t_19 * __pyx_v__dij.strides[0]) )) + __pyx_t_21)) )) = (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dj.data) + __pyx_t_20)) )));
/* … */
__pyx_t_20 = __pyx_v_i;
__pyx_t_21 = __pyx_v_i;
__pyx_t_19 = 0;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v__dij.data + __pyx_t_21 * __pyx_v__dij.strides[0]) )) + __pyx_t_19)) )) = (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_di.data) + __pyx_t_20)) )));
__pyx_t_20 = __pyx_v_i;
__pyx_t_19 = __pyx_v_i;
__pyx_t_21 = 1;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v__dij.data + __pyx_t_19 * __pyx_v__dij.strides[0]) )) + __pyx_t_21)) )) = (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dj.data) + __pyx_t_20)) )));
/* … */
__pyx_t_20 = __pyx_v_i;
__pyx_t_21 = __pyx_v_i;
__pyx_t_19 = 0;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v__dij.data + __pyx_t_21 * __pyx_v__dij.strides[0]) )) + __pyx_t_19)) )) = (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_di.data) + __pyx_t_20)) )));
__pyx_t_20 = __pyx_v_i;
__pyx_t_19 = __pyx_v_i;
__pyx_t_21 = 1;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v__dij.data + __pyx_t_19 * __pyx_v__dij.strides[0]) )) + __pyx_t_21)) )) = (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dj.data) + __pyx_t_20)) )));
/* … */
__pyx_t_20 = __pyx_v_i;
__pyx_t_21 = __pyx_v_i;
__pyx_t_19 = 0;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v__dij.data + __pyx_t_21 * __pyx_v__dij.strides[0]) )) + __pyx_t_19)) )) = (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_di.data) + __pyx_t_20)) )));
__pyx_t_20 = __pyx_v_i;
__pyx_t_19 = __pyx_v_i;
__pyx_t_21 = 1;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v__dij.data + __pyx_t_19 * __pyx_v__dij.strides[0]) )) + __pyx_t_21)) )) = (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dj.data) + __pyx_t_20)) )));
+1064: tr_updater(errors, I_n[i], W, I0, u, &_dij[i, 0], &_dij[i, 1],
__pyx_t_24.data = __pyx_v_I_n.data;
__pyx_t_24.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_24, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_24.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_24.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_24.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_24.suboffsets[0] = -1;
__pyx_t_24.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_24.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_24.suboffsets[1] = -1;
__pyx_t_20 = __pyx_v_i;
__pyx_t_21 = 0;
__pyx_t_19 = __pyx_v_i;
__pyx_t_18 = 1;
/* … */
__pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_tr_updater(__pyx_v_errors, __pyx_t_24, __pyx_v_W, __pyx_v_I0, __pyx_v_u, (&(*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v__dij.data + __pyx_t_20 * __pyx_v__dij.strides[0]) )) + __pyx_t_21)) )))), (&(*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v__dij.data + __pyx_t_19 * __pyx_v__dij.strides[0]) )) + __pyx_t_18)) )))), __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_grid_size, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
__PYX_XDEC_MEMVIEW(&__pyx_t_24, 0);
__pyx_t_24.memview = NULL;
__pyx_t_24.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_24.data = __pyx_v_I_n.data;
__pyx_t_24.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_24, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_24.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_24.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_24.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_24.suboffsets[0] = -1;
__pyx_t_24.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_24.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_24.suboffsets[1] = -1;
__pyx_t_20 = __pyx_v_i;
__pyx_t_21 = 0;
__pyx_t_19 = __pyx_v_i;
__pyx_t_18 = 1;
/* … */
__pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_tr_updater(__pyx_v_errors, __pyx_t_24, __pyx_v_W, __pyx_v_I0, __pyx_v_u, (&(*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v__dij.data + __pyx_t_20 * __pyx_v__dij.strides[0]) )) + __pyx_t_21)) )))), (&(*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v__dij.data + __pyx_t_19 * __pyx_v__dij.strides[0]) )) + __pyx_t_18)) )))), __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_grid_size, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
__PYX_XDEC_MEMVIEW(&__pyx_t_24, 0);
__pyx_t_24.memview = NULL;
__pyx_t_24.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_24.data = __pyx_v_I_n.data;
__pyx_t_24.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_24, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_24.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_24.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_24.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_24.suboffsets[0] = -1;
__pyx_t_24.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_24.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_24.suboffsets[1] = -1;
__pyx_t_20 = __pyx_v_i;
__pyx_t_21 = 0;
__pyx_t_19 = __pyx_v_i;
__pyx_t_18 = 1;
/* … */
__pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_tr_updater(__pyx_v_errors, __pyx_t_24, __pyx_v_W, __pyx_v_I0, __pyx_v_u, (&(*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v__dij.data + __pyx_t_20 * __pyx_v__dij.strides[0]) )) + __pyx_t_21)) )))), (&(*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v__dij.data + __pyx_t_19 * __pyx_v__dij.strides[0]) )) + __pyx_t_18)) )))), __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_grid_size, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
__PYX_XDEC_MEMVIEW(&__pyx_t_24, 0);
__pyx_t_24.memview = NULL;
__pyx_t_24.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_24.data = __pyx_v_I_n.data;
__pyx_t_24.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_24, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_24.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_24.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_24.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_24.suboffsets[0] = -1;
__pyx_t_24.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_24.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_24.suboffsets[1] = -1;
__pyx_t_20 = __pyx_v_i;
__pyx_t_21 = 0;
__pyx_t_19 = __pyx_v_i;
__pyx_t_18 = 1;
/* … */
__pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_tr_updater(__pyx_v_errors, __pyx_t_24, __pyx_v_W, __pyx_v_I0, __pyx_v_u, (&(*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v__dij.data + __pyx_t_20 * __pyx_v__dij.strides[0]) )) + __pyx_t_21)) )))), (&(*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v__dij.data + __pyx_t_19 * __pyx_v__dij.strides[0]) )) + __pyx_t_18)) )))), __pyx_v_sw_y, __pyx_v_sw_x, __pyx_v_grid_size, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
__PYX_XDEC_MEMVIEW(&__pyx_t_24, 0);
__pyx_t_24.memview = NULL;
__pyx_t_24.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
1065: sw_y, sw_x, grid_size, ds_y, ds_x, sigma, f)
1066:
+1067: return dij
__Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_dij)); __pyx_r = __pyx_v_dij; goto __pyx_L0; /* … */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_dij)); __pyx_r = __pyx_v_dij; goto __pyx_L0; /* … */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_dij)); __pyx_r = __pyx_v_dij; goto __pyx_L0; /* … */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_dij)); __pyx_r = __pyx_v_dij; goto __pyx_L0;
1068:
+1069: def pm_errors(uint_t[:, :, ::1] I_n not None, float_t[:, ::1] W not None, float_t[:, ::1] I0 not None,
/* Python wrapper */
static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_13pm_errors(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6pyrost_3bin_6pyrost_12pm_errors[] = "Return the residuals for the pixel mapping fit.\n\n Args:\n I_n (numpy.ndarray) : Measured intensity frames.\n W (numpy.ndarray) : Measured frames' whitefield.\n I0 (numpy.ndarray) : Reference image of the sample.\n u (numpy.ndarray) : The discrete geometrical mapping of the detector\n plane to the reference image.\n di (numpy.ndarray) : Sample's translations along the vertical detector\n axis in pixels.\n dj (numpy.ndarray) : Sample's translations along the fast detector\n axis in pixels.\n ds_y (float) : Sampling interval of reference image in pixels along\n the vertical axis.\n ds_x (float) : Sampling interval of reference image in pixels along\n the horizontal axis.\n sigma (float) : The standard deviation of `I_n`.\n loss (str): Choose between the following loss functions:\n\n * 'Epsilon': Epsilon loss function (epsilon = 0.5)\n * 'Huber' : Huber loss function (k = 1.345)\n * 'L1' : L1 norm loss function.\n * 'L2' : L2 norm loss function.\n num_threads (int): Number of threads.\n\n Returns:\n numpy.ndarray : Residual profile of the pixel mapping fit.\n\n See Also:\n :func:`pyrost.bin.pm_gsearch` : Description of error metric which\n is being minimized.\n\n Notes:\n The error metric is given by:\n\n .. math::\n\n \\varepsilon_{pm}[i, j] = \\frac{1}{N}\n \\sum_{n = 0}^N f\\left( \\frac{I[n, i, j] - W[i, j]\n I_{ref}[u[0, i, j] - di[n], u[1, i, j] - dj[n]]}{\\sigma}\n \\right)\n\n where :math:`f(x)` is L1 norm, L2 norm or Huber loss function.\n ";
static PyMethodDef __pyx_mdef_6pyrost_3bin_6pyrost_13pm_errors = {"pm_errors", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pyrost_3bin_6pyrost_13pm_errors, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_12pm_errors};
static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_13pm_errors(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_signatures = 0;
PyObject *__pyx_v_args = 0;
PyObject *__pyx_v_kwargs = 0;
CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
PyObject* values[4] = {0,0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 1069, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 1069, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
}
__pyx_v_signatures = values[0];
__pyx_v_args = values[1];
__pyx_v_kwargs = values[2];
__pyx_v_defaults = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1069, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_12pm_errors(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_12pm_errors(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
PyObject *__pyx_v_dest_sig = NULL;
Py_ssize_t __pyx_v_i;
PyTypeObject *__pyx_v_ndarray = 0;
__Pyx_memviewslice __pyx_v_memslice;
Py_ssize_t __pyx_v_itemsize;
int __pyx_v_dtype_signed;
char __pyx_v_kind;
int __pyx_v____pyx_uint64_t_is_signed;
int __pyx_v____pyx_uint32_t_is_signed;
PyObject *__pyx_v_arg = NULL;
PyObject *__pyx_v_dtype = NULL;
PyObject *__pyx_v_arg_base = NULL;
PyObject *__pyx_v_candidates = NULL;
PyObject *__pyx_v_sig = NULL;
int __pyx_v_match_found;
PyObject *__pyx_v_src_sig = NULL;
PyObject *__pyx_v_dst_type = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pm_errors", 0);
__Pyx_INCREF(__pyx_v_kwargs);
__pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{ Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
}
}
__pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_3 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1069, __pyx_L1_error)
__pyx_t_3 = ((!__pyx_t_4) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L4_bool_binop_done:;
if (__pyx_t_2) {
__Pyx_INCREF(Py_None);
__Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
}
__pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_v_itemsize = -1L;
__pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
__pyx_v____pyx_uint32_t_is_signed = (!((((__pyx_t_5numpy_uint32_t)-1L) > 0) != 0));
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 1069, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1069, __pyx_L1_error)
__pyx_t_2 = ((0 < __pyx_t_5) != 0);
if (__pyx_t_2) {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1069, __pyx_L1_error)
}
__pyx_t_1 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 0);
__Pyx_INCREF(__pyx_t_1);
__pyx_v_arg = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L6;
}
__pyx_t_3 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L7_bool_binop_done;
}
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1069, __pyx_L1_error)
}
__pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_I_n, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1069, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_4 != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L7_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1069, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_I_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_arg = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L6;
}
/*else*/ {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 1069, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1069, __pyx_L1_error)
__pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_INCREF(__pyx_int_9);
__Pyx_GIVEREF(__pyx_int_9);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_9);
__Pyx_INCREF(__pyx_n_s_s);
__Pyx_GIVEREF(__pyx_n_s_s);
PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_Raise(__pyx_t_6, 0, 0, 0);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__PYX_ERR(0, 1069, __pyx_L1_error)
}
__pyx_L6:;
while (1) {
__pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_dtype = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L12;
}
__pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_arg_base = __pyx_t_6;
__pyx_t_6 = 0;
__pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_dtype = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L13;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__pyx_v_dtype = Py_None;
}
__pyx_L13:;
goto __pyx_L12;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__pyx_v_dtype = Py_None;
}
__pyx_L12:;
__pyx_v_itemsize = -1L;
__pyx_t_2 = (__pyx_v_dtype != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_itemsize = __pyx_t_5;
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_kind = __pyx_t_7;
__pyx_v_dtype_signed = (__pyx_v_kind == 'i');
switch (__pyx_v_kind) {
case 'i':
case 'u':
__pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L16_bool_binop_done;
}
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L16_bool_binop_done;
}
__pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L16_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1069, __pyx_L1_error)
goto __pyx_L10_break;
}
__pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint32_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L20_bool_binop_done;
}
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L20_bool_binop_done;
}
__pyx_t_2 = ((!((__pyx_v____pyx_uint32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L20_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1069, __pyx_L1_error)
goto __pyx_L10_break;
}
break;
case 'f':
break;
case 'c':
break;
case 'O':
break;
default: break;
}
}
}
__pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L24_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L24_bool_binop_done:;
if (__pyx_t_3) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_3 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_3) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1069, __pyx_L1_error)
goto __pyx_L10_break;
}
/*else*/ {
PyErr_Clear();
}
}
__pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L28_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint32_t))) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L28_bool_binop_done:;
if (__pyx_t_3) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_3 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_3) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1069, __pyx_L1_error)
goto __pyx_L10_break;
}
/*else*/ {
PyErr_Clear();
}
}
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1069, __pyx_L1_error)
goto __pyx_L10_break;
}
__pyx_L10_break:;
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 1069, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1069, __pyx_L1_error)
__pyx_t_3 = ((1 < __pyx_t_5) != 0);
if (__pyx_t_3) {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1069, __pyx_L1_error)
}
__pyx_t_6 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 1);
__Pyx_INCREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
__pyx_t_6 = 0;
goto __pyx_L31;
}
__pyx_t_2 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_2 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_3 = __pyx_t_4;
goto __pyx_L32_bool_binop_done;
}
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1069, __pyx_L1_error)
}
__pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_W, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1069, __pyx_L1_error)
__pyx_t_2 = (__pyx_t_4 != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L32_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1069, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_W); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
__pyx_t_6 = 0;
goto __pyx_L31;
}
/*else*/ {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 1069, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1069, __pyx_L1_error)
__pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_int_9);
__Pyx_GIVEREF(__pyx_int_9);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_9);
__Pyx_INCREF(__pyx_n_s_s);
__Pyx_GIVEREF(__pyx_n_s_s);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 1069, __pyx_L1_error)
}
__pyx_L31:;
while (1) {
__pyx_t_3 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
__pyx_t_1 = 0;
goto __pyx_L37;
}
__pyx_t_3 = __pyx_memoryview_check(__pyx_v_arg);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_arg_base, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
__pyx_t_1 = 0;
goto __pyx_L38;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
}
__pyx_L38:;
goto __pyx_L37;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
}
__pyx_L37:;
__pyx_v_itemsize = -1L;
__pyx_t_3 = (__pyx_v_dtype != Py_None);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_itemsize = __pyx_t_5;
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_1); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_kind = __pyx_t_7;
__pyx_v_dtype_signed = (__pyx_v_kind == 'i');
switch (__pyx_v_kind) {
case 'i':
case 'u':
break;
case 'f':
__pyx_t_3 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L41_bool_binop_done;
}
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 2) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L41_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1069, __pyx_L1_error)
goto __pyx_L35_break;
}
__pyx_t_3 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L44_bool_binop_done;
}
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 2) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L44_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1069, __pyx_L1_error)
goto __pyx_L35_break;
}
break;
case 'c':
break;
case 'O':
break;
default: break;
}
}
}
__pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L47_bool_binop_done;
}
__pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L47_bool_binop_done:;
if (__pyx_t_2) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_2 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_2) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1069, __pyx_L1_error)
goto __pyx_L35_break;
}
/*else*/ {
PyErr_Clear();
}
}
__pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L51_bool_binop_done;
}
__pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L51_bool_binop_done:;
if (__pyx_t_2) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_2 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_2) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1069, __pyx_L1_error)
goto __pyx_L35_break;
}
/*else*/ {
PyErr_Clear();
}
}
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1069, __pyx_L1_error)
goto __pyx_L35_break;
}
__pyx_L35_break:;
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_candidates = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_5 = 0;
if (unlikely(__pyx_v_signatures == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1069, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_9, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_10);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_v_match_found = 0;
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_14 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
__pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
if (likely(__pyx_t_14)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
__Pyx_INCREF(__pyx_t_14);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_13, function);
}
}
__pyx_t_12 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2);
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
__pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
if (likely(__pyx_t_12)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
__Pyx_INCREF(__pyx_t_12);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_13, function);
}
}
__pyx_t_6 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__3);
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_15 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1069, __pyx_L1_error)
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_i = __pyx_t_17;
__pyx_t_6 = PyList_GET_ITEM(__pyx_v_dest_sig, __pyx_v_i);
__Pyx_INCREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_2 = (__pyx_v_dst_type != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_13 = PyObject_RichCompare(__pyx_t_6, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
if (__pyx_t_3) {
__pyx_v_match_found = 1;
goto __pyx_L59;
}
/*else*/ {
__pyx_v_match_found = 0;
goto __pyx_L57_break;
}
__pyx_L59:;
}
}
__pyx_L57_break:;
__pyx_t_3 = (__pyx_v_match_found != 0);
if (__pyx_t_3) {
__pyx_t_18 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 1069, __pyx_L1_error)
}
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
__pyx_t_2 = ((!__pyx_t_3) != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 1069, __pyx_L1_error)
}
__pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1069, __pyx_L1_error)
__pyx_t_2 = ((__pyx_t_9 > 1) != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 1069, __pyx_L1_error)
}
/*else*/ {
__Pyx_XDECREF(__pyx_r);
if (unlikely(__pyx_v_signatures == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1069, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), PyList_GET_ITEM(__pyx_v_candidates, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_AddTraceback("pyrost.bin.pyrost.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_dest_sig);
__Pyx_XDECREF(__pyx_v_ndarray);
__Pyx_XDECREF(__pyx_v_arg);
__Pyx_XDECREF(__pyx_v_dtype);
__Pyx_XDECREF(__pyx_v_arg_base);
__Pyx_XDECREF(__pyx_v_candidates);
__Pyx_XDECREF(__pyx_v_sig);
__Pyx_XDECREF(__pyx_v_src_sig);
__Pyx_XDECREF(__pyx_v_dst_type);
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_232__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults52, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults52, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults52, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults52, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyArrayObject *__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_83pm_errors(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_6pyrost_3bin_6pyrost_83pm_errors = {"__pyx_fuse_0_0pm_errors", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_83pm_errors, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_12pm_errors};
static PyArrayObject *__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_83pm_errors(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
CYTHON_UNUSED unsigned int __pyx_v_num_threads;
PyArrayObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pm_errors (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults52 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults52, __pyx_self);
values[9] = __pyx_dynamic_args->__pyx_arg_loss;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 1); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 2); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 3); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 4); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 5); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 6); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 7); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 8); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[9] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[10] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pm_errors") < 0)) __PYX_ERR(0, 1069, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 1069, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 1069, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 1069, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 1070, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 1070, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 1070, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1071, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1071, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1071, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[9]);
if (values[10]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[10]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1071, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1069, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_errors", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 1069, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 1069, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 1069, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 1070, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 1070, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 1070, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 1071, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_82pm_errors(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyArrayObject *__pyx_pf_6pyrost_3bin_6pyrost_82pm_errors(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, PyObject *__pyx_v_loss, CYTHON_UNUSED unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
int __pyx_v_Y;
CYTHON_UNUSED int __pyx_v_X;
int __pyx_v_j;
int __pyx_v_k;
PyArrayObject *__pyx_v_errs = 0;
__Pyx_memviewslice __pyx_v__errs = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_0_0pm_errors", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_5, 1);
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_errors", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_errs);
__PYX_XDEC_MEMVIEW(&__pyx_v__errs, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF((PyObject *)__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_234__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults53, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults53, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults53, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults53, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyArrayObject *__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_85pm_errors(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_6pyrost_3bin_6pyrost_85pm_errors = {"__pyx_fuse_0_1pm_errors", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_85pm_errors, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_12pm_errors};
static PyArrayObject *__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_85pm_errors(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
CYTHON_UNUSED unsigned int __pyx_v_num_threads;
PyArrayObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pm_errors (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults53 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults53, __pyx_self);
values[9] = __pyx_dynamic_args->__pyx_arg_loss;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 1); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 2); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 3); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 4); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 5); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 6); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 7); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 8); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[9] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[10] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pm_errors") < 0)) __PYX_ERR(0, 1069, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 1069, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 1069, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 1069, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 1070, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 1070, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 1070, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1071, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1071, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1071, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[9]);
if (values[10]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[10]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1071, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1069, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_errors", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 1069, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 1069, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 1069, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 1070, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 1070, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 1070, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 1071, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_84pm_errors(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyArrayObject *__pyx_pf_6pyrost_3bin_6pyrost_84pm_errors(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, PyObject *__pyx_v_loss, CYTHON_UNUSED unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
int __pyx_v_Y;
CYTHON_UNUSED int __pyx_v_X;
int __pyx_v_j;
int __pyx_v_k;
PyArrayObject *__pyx_v_errs = 0;
__Pyx_memviewslice __pyx_v__errs = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_0_1pm_errors", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_5, 1);
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_errors", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_errs);
__PYX_XDEC_MEMVIEW(&__pyx_v__errs, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF((PyObject *)__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_236__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults54, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults54, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults54, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults54, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyArrayObject *__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_87pm_errors(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_6pyrost_3bin_6pyrost_87pm_errors = {"__pyx_fuse_1_0pm_errors", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_87pm_errors, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_12pm_errors};
static PyArrayObject *__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_87pm_errors(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
CYTHON_UNUSED unsigned int __pyx_v_num_threads;
PyArrayObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pm_errors (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults54 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults54, __pyx_self);
values[9] = __pyx_dynamic_args->__pyx_arg_loss;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 1); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 2); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 3); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 4); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 5); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 6); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 7); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 8); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[9] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[10] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pm_errors") < 0)) __PYX_ERR(0, 1069, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 1069, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 1069, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 1069, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 1070, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 1070, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 1070, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1071, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1071, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1071, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[9]);
if (values[10]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[10]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1071, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1069, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_errors", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 1069, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 1069, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 1069, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 1070, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 1070, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 1070, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 1071, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_86pm_errors(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyArrayObject *__pyx_pf_6pyrost_3bin_6pyrost_86pm_errors(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, PyObject *__pyx_v_loss, CYTHON_UNUSED unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
int __pyx_v_Y;
CYTHON_UNUSED int __pyx_v_X;
int __pyx_v_j;
int __pyx_v_k;
PyArrayObject *__pyx_v_errs = 0;
__Pyx_memviewslice __pyx_v__errs = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_1_0pm_errors", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_5, 1);
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_errors", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_errs);
__PYX_XDEC_MEMVIEW(&__pyx_v__errs, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF((PyObject *)__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_238__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults55, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults55, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults55, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults55, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyArrayObject *__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_89pm_errors(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_6pyrost_3bin_6pyrost_89pm_errors = {"__pyx_fuse_1_1pm_errors", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_89pm_errors, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_12pm_errors};
static PyArrayObject *__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_89pm_errors(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
CYTHON_UNUSED unsigned int __pyx_v_num_threads;
PyArrayObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pm_errors (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults55 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults55, __pyx_self);
values[9] = __pyx_dynamic_args->__pyx_arg_loss;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 1); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 2); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 3); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 4); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 5); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 6); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 7); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, 8); __PYX_ERR(0, 1069, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[9] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[10] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pm_errors") < 0)) __PYX_ERR(0, 1069, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 1069, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 1069, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 1069, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 1070, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 1070, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 1070, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1071, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1071, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1071, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[9]);
if (values[10]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[10]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1071, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("pm_errors", 0, 9, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1069, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_errors", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 1069, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 1069, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 1069, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 1070, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 1070, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 1070, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 1071, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_88pm_errors(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyArrayObject *__pyx_pf_6pyrost_3bin_6pyrost_88pm_errors(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, PyObject *__pyx_v_loss, CYTHON_UNUSED unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
int __pyx_v_Y;
CYTHON_UNUSED int __pyx_v_X;
int __pyx_v_j;
int __pyx_v_k;
PyArrayObject *__pyx_v_errs = 0;
__Pyx_memviewslice __pyx_v__errs = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_1_1pm_errors", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_5, 1);
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_errors", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_errs);
__PYX_XDEC_MEMVIEW(&__pyx_v__errs, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF((PyObject *)__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_GIVEREF(__pyx_n_u_Huber);
PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_n_u_Huber);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
__pyx_t_1 = 0;
/* … */
__pyx_tuple__45 = PyTuple_Pack(19, __pyx_n_s_I_n, __pyx_n_s_W, __pyx_n_s_I0, __pyx_n_s_u, __pyx_n_s_di, __pyx_n_s_dj, __pyx_n_s_ds_y, __pyx_n_s_ds_x, __pyx_n_s_sigma, __pyx_n_s_loss, __pyx_n_s_num_threads, __pyx_n_s_f, __pyx_n_s_type_num, __pyx_n_s_Y, __pyx_n_s_X, __pyx_n_s_j, __pyx_n_s_k, __pyx_n_s_errs, __pyx_n_s_errs_2); if (unlikely(!__pyx_tuple__45)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__45);
__Pyx_GIVEREF(__pyx_tuple__45);
__pyx_t_1 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_return, __pyx_n_u_ndarray) < 0) __PYX_ERR(0, 1069, __pyx_L1_error)
__pyx_t_2 = __pyx_FusedFunction_New(&__pyx_fuse_0_0__pyx_mdef_6pyrost_3bin_6pyrost_83pm_errors, 0, __pyx_n_s_pm_errors, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__46)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_2, sizeof(__pyx_defaults52), 1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults52, __pyx_t_2)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults52, __pyx_t_2)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_2, __pyx_pf_6pyrost_3bin_6pyrost_232__defaults__);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_5);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint64_t_float64_t, __pyx_t_2) < 0) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_return, __pyx_n_u_ndarray) < 0) __PYX_ERR(0, 1069, __pyx_L1_error)
__pyx_t_5 = __pyx_FusedFunction_New(&__pyx_fuse_0_1__pyx_mdef_6pyrost_3bin_6pyrost_85pm_errors, 0, __pyx_n_s_pm_errors, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__46)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_5, sizeof(__pyx_defaults53), 1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults53, __pyx_t_5)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults53, __pyx_t_5)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_4);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_5, __pyx_pf_6pyrost_3bin_6pyrost_234__defaults__);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_5, __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint64_t_float32_t, __pyx_t_5) < 0) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_return, __pyx_n_u_ndarray) < 0) __PYX_ERR(0, 1069, __pyx_L1_error)
__pyx_t_2 = __pyx_FusedFunction_New(&__pyx_fuse_1_0__pyx_mdef_6pyrost_3bin_6pyrost_87pm_errors, 0, __pyx_n_s_pm_errors, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__46)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_2, sizeof(__pyx_defaults54), 1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults54, __pyx_t_2)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults54, __pyx_t_2)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_2, __pyx_pf_6pyrost_3bin_6pyrost_236__defaults__);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_5);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint32_t_float64_t, __pyx_t_2) < 0) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_return, __pyx_n_u_ndarray) < 0) __PYX_ERR(0, 1069, __pyx_L1_error)
__pyx_t_5 = __pyx_FusedFunction_New(&__pyx_fuse_1_1__pyx_mdef_6pyrost_3bin_6pyrost_89pm_errors, 0, __pyx_n_s_pm_errors, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__46)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_5, sizeof(__pyx_defaults55), 1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults55, __pyx_t_5)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults55, __pyx_t_5)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_4);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_5, __pyx_pf_6pyrost_3bin_6pyrost_238__defaults__);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_5, __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint32_t_float32_t, __pyx_t_5) < 0) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __pyx_FusedFunction_New(&__pyx_mdef_6pyrost_3bin_6pyrost_13pm_errors, 0, __pyx_n_s_pm_errors, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__46)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_4);
((__pyx_FusedFunctionObject *) __pyx_t_5)->__signatures__ = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
if (PyDict_SetItem(__pyx_d, __pyx_n_s_pm_errors, __pyx_t_5) < 0) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_codeobj__46 = (PyObject*)__Pyx_PyCode_New(11, 0, 19, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__45, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pyrost_bin_pyrost_pyx, __pyx_n_s_pm_errors, 1069, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__46)) __PYX_ERR(0, 1069, __pyx_L1_error)
1070: float_t[:, :, ::1] u not None, float_t[::1] di not None, float_t[::1] dj not None,
+1071: double ds_y, double ds_x, double sigma, str loss='Huber', unsigned num_threads=1) -> np.ndarray:
__pyx_t_1 = __Pyx_PyInt_From_long(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
1072: r"""Return the residuals for the pixel mapping fit.
1073:
1074: Args:
1075: I_n (numpy.ndarray) : Measured intensity frames.
1076: W (numpy.ndarray) : Measured frames' whitefield.
1077: I0 (numpy.ndarray) : Reference image of the sample.
1078: u (numpy.ndarray) : The discrete geometrical mapping of the detector
1079: plane to the reference image.
1080: di (numpy.ndarray) : Sample's translations along the vertical detector
1081: axis in pixels.
1082: dj (numpy.ndarray) : Sample's translations along the fast detector
1083: axis in pixels.
1084: ds_y (float) : Sampling interval of reference image in pixels along
1085: the vertical axis.
1086: ds_x (float) : Sampling interval of reference image in pixels along
1087: the horizontal axis.
1088: sigma (float) : The standard deviation of `I_n`.
1089: loss (str): Choose between the following loss functions:
1090:
1091: * 'Epsilon': Epsilon loss function (epsilon = 0.5)
1092: * 'Huber' : Huber loss function (k = 1.345)
1093: * 'L1' : L1 norm loss function.
1094: * 'L2' : L2 norm loss function.
1095: num_threads (int): Number of threads.
1096:
1097: Returns:
1098: numpy.ndarray : Residual profile of the pixel mapping fit.
1099:
1100: See Also:
1101: :func:`pyrost.bin.pm_gsearch` : Description of error metric which
1102: is being minimized.
1103:
1104: Notes:
1105: The error metric is given by:
1106:
1107: .. math::
1108:
1109: \varepsilon_{pm}[i, j] = \frac{1}{N}
1110: \sum_{n = 0}^N f\left( \frac{I[n, i, j] - W[i, j]
1111: I_{ref}[u[0, i, j] - di[n], u[1, i, j] - dj[n]]}{\sigma}
1112: \right)
1113:
1114: where :math:`f(x)` is L1 norm, L2 norm or Huber loss function.
1115: """
+1116: if ds_y <= 0.0 or ds_x <= 0.0:
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
+1117: raise ValueError('Sampling intervals must be positive')
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 1117, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 1117, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 1117, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 1117, __pyx_L1_error)
1118:
+1119: cdef loss_func f = choose_loss(loss)
__pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss); /* … */ __pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss); /* … */ __pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss); /* … */ __pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss);
1120:
+1121: cdef int type_num = np.PyArray_TYPE(W.base)
__pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1121, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1121, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1121, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1121, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1122: cdef int Y = I_n.shape[1], X = I_n.shape[2], j, k
__pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]);
1123:
+1124: cdef np.ndarray errs = np.PyArray_SimpleNew(2, <np.npy_intp *>I_n.shape + 1, type_num)
__pyx_t_4 = PyArray_SimpleNew(2, (((npy_intp *)__pyx_v_I_n.shape) + 1), __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1124, __pyx_L1_error) __pyx_v_errs = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_SimpleNew(2, (((npy_intp *)__pyx_v_I_n.shape) + 1), __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1124, __pyx_L1_error) __pyx_v_errs = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_SimpleNew(2, (((npy_intp *)__pyx_v_I_n.shape) + 1), __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1124, __pyx_L1_error) __pyx_v_errs = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_SimpleNew(2, (((npy_intp *)__pyx_v_I_n.shape) + 1), __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1124, __pyx_L1_error) __pyx_v_errs = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0;
+1125: cdef float_t[:, ::1] _errs = errs
__pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(((PyObject *)__pyx_v_errs), PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 1125, __pyx_L1_error) __pyx_v__errs = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL; /* … */ __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(((PyObject *)__pyx_v_errs), PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 1125, __pyx_L1_error) __pyx_v__errs = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL; /* … */ __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(((PyObject *)__pyx_v_errs), PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 1125, __pyx_L1_error) __pyx_v__errs = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL; /* … */ __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(((PyObject *)__pyx_v_errs), PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 1125, __pyx_L1_error) __pyx_v__errs = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL;
1126:
+1127: for k in prange(X, schedule='guided', num_threads=num_threads, nogil=True):
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_6 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_8 = (__pyx_t_6 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_8 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_6 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_8 = (__pyx_t_6 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_8 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_8; __pyx_t_7++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_7);
/* Initialize private variables to invalid values */
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_6 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_8 = (__pyx_t_6 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_8 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_6 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_8 = (__pyx_t_6 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_8 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_8; __pyx_t_7++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_7);
/* Initialize private variables to invalid values */
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_6 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_8 = (__pyx_t_6 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_8 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_6 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_8 = (__pyx_t_6 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_8 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_8; __pyx_t_7++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_7);
/* Initialize private variables to invalid values */
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_6 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_8 = (__pyx_t_6 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_8 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_6 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_8 = (__pyx_t_6 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_8 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_8; __pyx_t_7++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_7);
/* Initialize private variables to invalid values */
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
+1128: for j in range(Y):
__pyx_t_9 = __pyx_v_Y;
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_j = __pyx_t_11;
/* … */
__pyx_t_9 = __pyx_v_Y;
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_j = __pyx_t_11;
/* … */
__pyx_t_9 = __pyx_v_Y;
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_j = __pyx_t_11;
/* … */
__pyx_t_9 = __pyx_v_Y;
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_j = __pyx_t_11;
+1129: if W[j, k] > 0.0:
__pyx_t_12 = __pyx_v_j;
__pyx_t_13 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_12 * __pyx_v_W.strides[0]) )) + __pyx_t_13)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L15;
}
/* … */
__pyx_t_12 = __pyx_v_j;
__pyx_t_13 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_12 * __pyx_v_W.strides[0]) )) + __pyx_t_13)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L15;
}
/* … */
__pyx_t_12 = __pyx_v_j;
__pyx_t_13 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_12 * __pyx_v_W.strides[0]) )) + __pyx_t_13)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L15;
}
/* … */
__pyx_t_12 = __pyx_v_j;
__pyx_t_13 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_12 * __pyx_v_W.strides[0]) )) + __pyx_t_13)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L15;
}
+1130: _errs[j, k] = FVU_interp(I_n, W[j, k], I0, di, dj, j, k,
__pyx_t_13 = __pyx_v_j;
__pyx_t_12 = __pyx_v_k;
/* … */
__pyx_t_20 = __pyx_v_j;
__pyx_t_21 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v__errs.data + __pyx_t_20 * __pyx_v__errs.strides[0]) )) + __pyx_t_21)) )) = __pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_13 * __pyx_v_W.strides[0]) )) + __pyx_t_12)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_14 * __pyx_v_u.strides[0]) ) + __pyx_t_15 * __pyx_v_u.strides[1]) )) + __pyx_t_16)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_17 * __pyx_v_u.strides[0]) ) + __pyx_t_18 * __pyx_v_u.strides[1]) )) + __pyx_t_19)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_t_13 = __pyx_v_j;
__pyx_t_12 = __pyx_v_k;
/* … */
__pyx_t_20 = __pyx_v_j;
__pyx_t_21 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v__errs.data + __pyx_t_20 * __pyx_v__errs.strides[0]) )) + __pyx_t_21)) )) = __pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_13 * __pyx_v_W.strides[0]) )) + __pyx_t_12)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_14 * __pyx_v_u.strides[0]) ) + __pyx_t_15 * __pyx_v_u.strides[1]) )) + __pyx_t_16)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_17 * __pyx_v_u.strides[0]) ) + __pyx_t_18 * __pyx_v_u.strides[1]) )) + __pyx_t_19)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_t_13 = __pyx_v_j;
__pyx_t_12 = __pyx_v_k;
/* … */
__pyx_t_20 = __pyx_v_j;
__pyx_t_21 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v__errs.data + __pyx_t_20 * __pyx_v__errs.strides[0]) )) + __pyx_t_21)) )) = __pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_13 * __pyx_v_W.strides[0]) )) + __pyx_t_12)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_14 * __pyx_v_u.strides[0]) ) + __pyx_t_15 * __pyx_v_u.strides[1]) )) + __pyx_t_16)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_17 * __pyx_v_u.strides[0]) ) + __pyx_t_18 * __pyx_v_u.strides[1]) )) + __pyx_t_19)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
/* … */
__pyx_t_13 = __pyx_v_j;
__pyx_t_12 = __pyx_v_k;
/* … */
__pyx_t_20 = __pyx_v_j;
__pyx_t_21 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v__errs.data + __pyx_t_20 * __pyx_v__errs.strides[0]) )) + __pyx_t_21)) )) = __pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_13 * __pyx_v_W.strides[0]) )) + __pyx_t_12)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_14 * __pyx_v_u.strides[0]) ) + __pyx_t_15 * __pyx_v_u.strides[1]) )) + __pyx_t_16)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_17 * __pyx_v_u.strides[0]) ) + __pyx_t_18 * __pyx_v_u.strides[1]) )) + __pyx_t_19)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f);
+1131: u[0, j, k], u[1, j, k], ds_y, ds_x, sigma, f)
__pyx_t_14 = 0;
__pyx_t_15 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = 1;
__pyx_t_18 = __pyx_v_j;
__pyx_t_19 = __pyx_v_k;
/* … */
__pyx_t_14 = 0;
__pyx_t_15 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = 1;
__pyx_t_18 = __pyx_v_j;
__pyx_t_19 = __pyx_v_k;
/* … */
__pyx_t_14 = 0;
__pyx_t_15 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = 1;
__pyx_t_18 = __pyx_v_j;
__pyx_t_19 = __pyx_v_k;
/* … */
__pyx_t_14 = 0;
__pyx_t_15 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = 1;
__pyx_t_18 = __pyx_v_j;
__pyx_t_19 = __pyx_v_k;
1132: else:
+1133: _errs[j, k] = 0.0
/*else*/ {
__pyx_t_19 = __pyx_v_j;
__pyx_t_18 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v__errs.data + __pyx_t_19 * __pyx_v__errs.strides[0]) )) + __pyx_t_18)) )) = 0.0;
}
__pyx_L15:;
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
/*else*/ {
__pyx_t_19 = __pyx_v_j;
__pyx_t_18 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v__errs.data + __pyx_t_19 * __pyx_v__errs.strides[0]) )) + __pyx_t_18)) )) = 0.0;
}
__pyx_L15:;
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
/*else*/ {
__pyx_t_19 = __pyx_v_j;
__pyx_t_18 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v__errs.data + __pyx_t_19 * __pyx_v__errs.strides[0]) )) + __pyx_t_18)) )) = 0.0;
}
__pyx_L15:;
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
/*else*/ {
__pyx_t_19 = __pyx_v_j;
__pyx_t_18 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v__errs.data + __pyx_t_19 * __pyx_v__errs.strides[0]) )) + __pyx_t_18)) )) = 0.0;
}
__pyx_L15:;
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
1134:
+1135: return errs
__Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_errs)); __pyx_r = __pyx_v_errs; goto __pyx_L0; /* … */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_errs)); __pyx_r = __pyx_v_errs; goto __pyx_L0; /* … */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_errs)); __pyx_r = __pyx_v_errs; goto __pyx_L0; /* … */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_errs)); __pyx_r = __pyx_v_errs; goto __pyx_L0;
1136:
+1137: def pm_total_error(uint_t[:, :, ::1] I_n not None, float_t[:, ::1] W not None, float_t[:, ::1] I0 not None,
/* Python wrapper */
static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_15pm_total_error(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6pyrost_3bin_6pyrost_14pm_total_error[] = "Return the mean residual for the pixel mapping fit.\n\n Args:\n I_n (numpy.ndarray) : Measured intensity frames.\n W (numpy.ndarray) : Measured frames' whitefield.\n I0 (numpy.ndarray) : Reference image of the sample.\n u (numpy.ndarray) : The discrete geometrical mapping of the detector\n plane to the reference image.\n di (numpy.ndarray) : Sample's translations along the vertical detector\n axis in pixels.\n dj (numpy.ndarray) : Sample's translations along the fast detector\n axis in pixels.\n ds_y (float) : Sampling interval of reference image in pixels along\n the vertical axis.\n ds_x (float) : Sampling interval of reference image in pixels along\n the horizontal axis.\n sigma (float) : The standard deviation of `I_n`.\n loss (str): Choose between the following loss functions:\n\n * 'Epsilon': Epsilon loss function (epsilon = 0.5)\n * 'Huber' : Huber loss function (k = 1.345)\n * 'L1' : L1 norm loss function.\n * 'L2' : L2 norm loss function.\n num_threads (int): Number of threads.\n\n Returns:\n float : Mean residual value of the pixel mapping fit.\n\n See Also:\n :func:`pyrost.bin.pm_gsearch` : Description of error metric which\n is being minimized.\n\n Notes:\n The error metric is given by:\n\n .. math::\n\n \\varepsilon_{pm}[i, j] = \\frac{1}{N}\n \\sum_{n = 0}^N f\\left( \\frac{I[n, i, j] - W[i, j]\n I_{ref}[u[0, i, j] - di[n], u[1, i, j] - dj[n]]}{\\sigma}\n \\right)\n\n where :math:`f(x)` is L1 norm, L2 norm or Huber loss function.\n ";
static PyMethodDef __pyx_mdef_6pyrost_3bin_6pyrost_15pm_total_error = {"pm_total_error", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pyrost_3bin_6pyrost_15pm_total_error, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_14pm_total_error};
static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_15pm_total_error(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_signatures = 0;
PyObject *__pyx_v_args = 0;
PyObject *__pyx_v_kwargs = 0;
CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
PyObject* values[4] = {0,0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 1137, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 1137, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
}
__pyx_v_signatures = values[0];
__pyx_v_args = values[1];
__pyx_v_kwargs = values[2];
__pyx_v_defaults = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1137, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_14pm_total_error(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_14pm_total_error(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
PyObject *__pyx_v_dest_sig = NULL;
Py_ssize_t __pyx_v_i;
PyTypeObject *__pyx_v_ndarray = 0;
__Pyx_memviewslice __pyx_v_memslice;
Py_ssize_t __pyx_v_itemsize;
int __pyx_v_dtype_signed;
char __pyx_v_kind;
int __pyx_v____pyx_uint64_t_is_signed;
int __pyx_v____pyx_uint32_t_is_signed;
PyObject *__pyx_v_arg = NULL;
PyObject *__pyx_v_dtype = NULL;
PyObject *__pyx_v_arg_base = NULL;
PyObject *__pyx_v_candidates = NULL;
PyObject *__pyx_v_sig = NULL;
int __pyx_v_match_found;
PyObject *__pyx_v_src_sig = NULL;
PyObject *__pyx_v_dst_type = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pm_total_error", 0);
__Pyx_INCREF(__pyx_v_kwargs);
__pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{ Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
}
}
__pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_3 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1137, __pyx_L1_error)
__pyx_t_3 = ((!__pyx_t_4) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L4_bool_binop_done:;
if (__pyx_t_2) {
__Pyx_INCREF(Py_None);
__Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
}
__pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_v_itemsize = -1L;
__pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
__pyx_v____pyx_uint32_t_is_signed = (!((((__pyx_t_5numpy_uint32_t)-1L) > 0) != 0));
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 1137, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1137, __pyx_L1_error)
__pyx_t_2 = ((0 < __pyx_t_5) != 0);
if (__pyx_t_2) {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1137, __pyx_L1_error)
}
__pyx_t_1 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 0);
__Pyx_INCREF(__pyx_t_1);
__pyx_v_arg = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L6;
}
__pyx_t_3 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L7_bool_binop_done;
}
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1137, __pyx_L1_error)
}
__pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_I_n, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1137, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_4 != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L7_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1137, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_I_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_arg = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L6;
}
/*else*/ {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 1137, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1137, __pyx_L1_error)
__pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_INCREF(__pyx_int_9);
__Pyx_GIVEREF(__pyx_int_9);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_9);
__Pyx_INCREF(__pyx_n_s_s);
__Pyx_GIVEREF(__pyx_n_s_s);
PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_Raise(__pyx_t_6, 0, 0, 0);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__PYX_ERR(0, 1137, __pyx_L1_error)
}
__pyx_L6:;
while (1) {
__pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_dtype = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L12;
}
__pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_arg_base = __pyx_t_6;
__pyx_t_6 = 0;
__pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_dtype = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L13;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__pyx_v_dtype = Py_None;
}
__pyx_L13:;
goto __pyx_L12;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__pyx_v_dtype = Py_None;
}
__pyx_L12:;
__pyx_v_itemsize = -1L;
__pyx_t_2 = (__pyx_v_dtype != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_itemsize = __pyx_t_5;
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_kind = __pyx_t_7;
__pyx_v_dtype_signed = (__pyx_v_kind == 'i');
switch (__pyx_v_kind) {
case 'i':
case 'u':
__pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L16_bool_binop_done;
}
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L16_bool_binop_done;
}
__pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L16_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1137, __pyx_L1_error)
goto __pyx_L10_break;
}
__pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint32_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L20_bool_binop_done;
}
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L20_bool_binop_done;
}
__pyx_t_2 = ((!((__pyx_v____pyx_uint32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L20_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1137, __pyx_L1_error)
goto __pyx_L10_break;
}
break;
case 'f':
break;
case 'c':
break;
case 'O':
break;
default: break;
}
}
}
__pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L24_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L24_bool_binop_done:;
if (__pyx_t_3) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_3 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_3) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1137, __pyx_L1_error)
goto __pyx_L10_break;
}
/*else*/ {
PyErr_Clear();
}
}
__pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L28_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint32_t))) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L28_bool_binop_done:;
if (__pyx_t_3) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_3 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_3) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1137, __pyx_L1_error)
goto __pyx_L10_break;
}
/*else*/ {
PyErr_Clear();
}
}
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1137, __pyx_L1_error)
goto __pyx_L10_break;
}
__pyx_L10_break:;
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 1137, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1137, __pyx_L1_error)
__pyx_t_3 = ((1 < __pyx_t_5) != 0);
if (__pyx_t_3) {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1137, __pyx_L1_error)
}
__pyx_t_6 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 1);
__Pyx_INCREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
__pyx_t_6 = 0;
goto __pyx_L31;
}
__pyx_t_2 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_2 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_3 = __pyx_t_4;
goto __pyx_L32_bool_binop_done;
}
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1137, __pyx_L1_error)
}
__pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_W, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1137, __pyx_L1_error)
__pyx_t_2 = (__pyx_t_4 != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L32_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1137, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_W); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
__pyx_t_6 = 0;
goto __pyx_L31;
}
/*else*/ {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 1137, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1137, __pyx_L1_error)
__pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_int_9);
__Pyx_GIVEREF(__pyx_int_9);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_9);
__Pyx_INCREF(__pyx_n_s_s);
__Pyx_GIVEREF(__pyx_n_s_s);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 1137, __pyx_L1_error)
}
__pyx_L31:;
while (1) {
__pyx_t_3 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
__pyx_t_1 = 0;
goto __pyx_L37;
}
__pyx_t_3 = __pyx_memoryview_check(__pyx_v_arg);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_arg_base, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
__pyx_t_1 = 0;
goto __pyx_L38;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
}
__pyx_L38:;
goto __pyx_L37;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
}
__pyx_L37:;
__pyx_v_itemsize = -1L;
__pyx_t_3 = (__pyx_v_dtype != Py_None);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_itemsize = __pyx_t_5;
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_1); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_kind = __pyx_t_7;
__pyx_v_dtype_signed = (__pyx_v_kind == 'i');
switch (__pyx_v_kind) {
case 'i':
case 'u':
break;
case 'f':
__pyx_t_3 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L41_bool_binop_done;
}
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 2) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L41_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1137, __pyx_L1_error)
goto __pyx_L35_break;
}
__pyx_t_3 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L44_bool_binop_done;
}
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 2) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L44_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1137, __pyx_L1_error)
goto __pyx_L35_break;
}
break;
case 'c':
break;
case 'O':
break;
default: break;
}
}
}
__pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L47_bool_binop_done;
}
__pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L47_bool_binop_done:;
if (__pyx_t_2) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_2 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_2) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1137, __pyx_L1_error)
goto __pyx_L35_break;
}
/*else*/ {
PyErr_Clear();
}
}
__pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L51_bool_binop_done;
}
__pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L51_bool_binop_done:;
if (__pyx_t_2) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_2 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_2) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1137, __pyx_L1_error)
goto __pyx_L35_break;
}
/*else*/ {
PyErr_Clear();
}
}
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1137, __pyx_L1_error)
goto __pyx_L35_break;
}
__pyx_L35_break:;
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_candidates = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_5 = 0;
if (unlikely(__pyx_v_signatures == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1137, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_9, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_10);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_v_match_found = 0;
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_14 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
__pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
if (likely(__pyx_t_14)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
__Pyx_INCREF(__pyx_t_14);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_13, function);
}
}
__pyx_t_12 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2);
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
__pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
if (likely(__pyx_t_12)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
__Pyx_INCREF(__pyx_t_12);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_13, function);
}
}
__pyx_t_6 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__3);
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_15 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1137, __pyx_L1_error)
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_i = __pyx_t_17;
__pyx_t_6 = PyList_GET_ITEM(__pyx_v_dest_sig, __pyx_v_i);
__Pyx_INCREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_2 = (__pyx_v_dst_type != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_13 = PyObject_RichCompare(__pyx_t_6, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
if (__pyx_t_3) {
__pyx_v_match_found = 1;
goto __pyx_L59;
}
/*else*/ {
__pyx_v_match_found = 0;
goto __pyx_L57_break;
}
__pyx_L59:;
}
}
__pyx_L57_break:;
__pyx_t_3 = (__pyx_v_match_found != 0);
if (__pyx_t_3) {
__pyx_t_18 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 1137, __pyx_L1_error)
}
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
__pyx_t_2 = ((!__pyx_t_3) != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 1137, __pyx_L1_error)
}
__pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1137, __pyx_L1_error)
__pyx_t_2 = ((__pyx_t_9 > 1) != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 1137, __pyx_L1_error)
}
/*else*/ {
__Pyx_XDECREF(__pyx_r);
if (unlikely(__pyx_v_signatures == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1137, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), PyList_GET_ITEM(__pyx_v_candidates, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_AddTraceback("pyrost.bin.pyrost.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_dest_sig);
__Pyx_XDECREF(__pyx_v_ndarray);
__Pyx_XDECREF(__pyx_v_arg);
__Pyx_XDECREF(__pyx_v_dtype);
__Pyx_XDECREF(__pyx_v_arg_base);
__Pyx_XDECREF(__pyx_v_candidates);
__Pyx_XDECREF(__pyx_v_sig);
__Pyx_XDECREF(__pyx_v_src_sig);
__Pyx_XDECREF(__pyx_v_dst_type);
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_248__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults60, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults60, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults60, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults60, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_93pm_total_error(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_6pyrost_3bin_6pyrost_93pm_total_error = {"__pyx_fuse_0_0pm_total_error", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_93pm_total_error, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_14pm_total_error};
static PyObject *__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_93pm_total_error(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
CYTHON_UNUSED unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pm_total_error (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults60 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults60, __pyx_self);
values[9] = __pyx_dynamic_args->__pyx_arg_loss;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 1); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 2); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 3); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 4); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 5); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 6); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 7); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 8); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[9] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[10] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pm_total_error") < 0)) __PYX_ERR(0, 1137, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 1137, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 1137, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 1137, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 1138, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 1138, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 1138, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1139, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1139, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1139, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[9]);
if (values[10]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[10]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1139, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1137, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_total_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 1137, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 1137, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 1137, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 1138, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 1138, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 1138, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 1139, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_92pm_total_error(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_92pm_total_error(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, PyObject *__pyx_v_loss, CYTHON_UNUSED unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
CYTHON_UNUSED int __pyx_v_type_num;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_j;
int __pyx_v_k;
double __pyx_v_err;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_0_0pm_total_error", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_total_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_250__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults61, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults61, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults61, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults61, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_95pm_total_error(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_6pyrost_3bin_6pyrost_95pm_total_error = {"__pyx_fuse_0_1pm_total_error", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_95pm_total_error, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_14pm_total_error};
static PyObject *__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_95pm_total_error(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
CYTHON_UNUSED unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pm_total_error (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults61 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults61, __pyx_self);
values[9] = __pyx_dynamic_args->__pyx_arg_loss;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 1); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 2); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 3); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 4); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 5); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 6); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 7); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 8); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[9] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[10] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pm_total_error") < 0)) __PYX_ERR(0, 1137, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 1137, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 1137, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 1137, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 1138, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 1138, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 1138, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1139, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1139, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1139, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[9]);
if (values[10]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[10]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1139, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1137, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_total_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 1137, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 1137, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 1137, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 1138, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 1138, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 1138, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 1139, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_94pm_total_error(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_94pm_total_error(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, PyObject *__pyx_v_loss, CYTHON_UNUSED unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
CYTHON_UNUSED int __pyx_v_type_num;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_j;
int __pyx_v_k;
double __pyx_v_err;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_0_1pm_total_error", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_total_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_252__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults62, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults62, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults62, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults62, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_97pm_total_error(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_6pyrost_3bin_6pyrost_97pm_total_error = {"__pyx_fuse_1_0pm_total_error", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_97pm_total_error, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_14pm_total_error};
static PyObject *__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_97pm_total_error(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
CYTHON_UNUSED unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pm_total_error (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults62 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults62, __pyx_self);
values[9] = __pyx_dynamic_args->__pyx_arg_loss;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 1); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 2); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 3); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 4); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 5); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 6); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 7); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 8); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[9] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[10] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pm_total_error") < 0)) __PYX_ERR(0, 1137, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 1137, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 1137, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 1137, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 1138, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 1138, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 1138, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1139, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1139, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1139, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[9]);
if (values[10]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[10]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1139, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1137, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_total_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 1137, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 1137, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 1137, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 1138, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 1138, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 1138, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 1139, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_96pm_total_error(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_96pm_total_error(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, PyObject *__pyx_v_loss, CYTHON_UNUSED unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
CYTHON_UNUSED int __pyx_v_type_num;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_j;
int __pyx_v_k;
double __pyx_v_err;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_1_0pm_total_error", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_total_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_254__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults63, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults63, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults63, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults63, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_99pm_total_error(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_6pyrost_3bin_6pyrost_99pm_total_error = {"__pyx_fuse_1_1pm_total_error", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_99pm_total_error, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_14pm_total_error};
static PyObject *__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_99pm_total_error(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
CYTHON_UNUSED unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("pm_total_error (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults63 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults63, __pyx_self);
values[9] = __pyx_dynamic_args->__pyx_arg_loss;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 1); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 2); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 3); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 4); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 5); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 6); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 7); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, 8); __PYX_ERR(0, 1137, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[9] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[10] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pm_total_error") < 0)) __PYX_ERR(0, 1137, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 1137, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 1137, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 1137, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 1138, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 1138, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 1138, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1139, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1139, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1139, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[9]);
if (values[10]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[10]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1139, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("pm_total_error", 0, 9, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1137, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_total_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 1137, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 1137, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 1137, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 1138, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 1138, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 1138, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 1139, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_98pm_total_error(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_98pm_total_error(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_sigma, PyObject *__pyx_v_loss, CYTHON_UNUSED unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
CYTHON_UNUSED int __pyx_v_type_num;
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_j;
int __pyx_v_k;
double __pyx_v_err;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_1_1pm_total_error", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("pyrost.bin.pyrost.pm_total_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_GIVEREF(__pyx_n_u_Huber);
PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_n_u_Huber);
__Pyx_GIVEREF(__pyx_t_4);
PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
__pyx_t_4 = 0;
/* … */
__pyx_tuple__47 = PyTuple_Pack(18, __pyx_n_s_I_n, __pyx_n_s_W, __pyx_n_s_I0, __pyx_n_s_u, __pyx_n_s_di, __pyx_n_s_dj, __pyx_n_s_ds_y, __pyx_n_s_ds_x, __pyx_n_s_sigma, __pyx_n_s_loss, __pyx_n_s_num_threads, __pyx_n_s_f, __pyx_n_s_type_num, __pyx_n_s_Y, __pyx_n_s_X, __pyx_n_s_j, __pyx_n_s_k, __pyx_n_s_err); if (unlikely(!__pyx_tuple__47)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__47);
__Pyx_GIVEREF(__pyx_tuple__47);
__pyx_t_4 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_return, __pyx_n_u_double) < 0) __PYX_ERR(0, 1137, __pyx_L1_error)
__pyx_t_2 = __pyx_FusedFunction_New(&__pyx_fuse_0_0__pyx_mdef_6pyrost_3bin_6pyrost_93pm_total_error, 0, __pyx_n_s_pm_total_error, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_2, sizeof(__pyx_defaults60), 1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults60, __pyx_t_2)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults60, __pyx_t_2)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_5);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_2, __pyx_pf_6pyrost_3bin_6pyrost_248__defaults__);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_uint64_t_float64_t, __pyx_t_2) < 0) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_return, __pyx_n_u_double) < 0) __PYX_ERR(0, 1137, __pyx_L1_error)
__pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0_1__pyx_mdef_6pyrost_3bin_6pyrost_95pm_total_error, 0, __pyx_n_s_pm_total_error, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults61), 1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults61, __pyx_t_1)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults61, __pyx_t_1)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_5);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pyrost_3bin_6pyrost_250__defaults__);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_uint64_t_float32_t, __pyx_t_1) < 0) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_return, __pyx_n_u_double) < 0) __PYX_ERR(0, 1137, __pyx_L1_error)
__pyx_t_2 = __pyx_FusedFunction_New(&__pyx_fuse_1_0__pyx_mdef_6pyrost_3bin_6pyrost_97pm_total_error, 0, __pyx_n_s_pm_total_error, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_2, sizeof(__pyx_defaults62), 1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults62, __pyx_t_2)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults62, __pyx_t_2)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_5);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_2, __pyx_pf_6pyrost_3bin_6pyrost_252__defaults__);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_uint32_t_float64_t, __pyx_t_2) < 0) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_return, __pyx_n_u_double) < 0) __PYX_ERR(0, 1137, __pyx_L1_error)
__pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1_1__pyx_mdef_6pyrost_3bin_6pyrost_99pm_total_error, 0, __pyx_n_s_pm_total_error, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults63), 1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults63, __pyx_t_1)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults63, __pyx_t_1)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_5);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pyrost_3bin_6pyrost_254__defaults__);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_uint32_t_float32_t, __pyx_t_1) < 0) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_6pyrost_3bin_6pyrost_15pm_total_error, 0, __pyx_n_s_pm_total_error, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_5);
((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_4;
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_4 = 0;
if (PyDict_SetItem(__pyx_d, __pyx_n_s_pm_total_error, __pyx_t_1) < 0) __PYX_ERR(0, 1137, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_codeobj__48 = (PyObject*)__Pyx_PyCode_New(11, 0, 18, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__47, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pyrost_bin_pyrost_pyx, __pyx_n_s_pm_total_error, 1137, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__48)) __PYX_ERR(0, 1137, __pyx_L1_error)
1138: float_t[:, :, ::1] u not None, float_t[::1] di not None, float_t[::1] dj not None,
+1139: double ds_y, double ds_x, double sigma, str loss='Huber', unsigned num_threads=1) -> double:
__pyx_t_4 = __Pyx_PyInt_From_long(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
1140: r"""Return the mean residual for the pixel mapping fit.
1141:
1142: Args:
1143: I_n (numpy.ndarray) : Measured intensity frames.
1144: W (numpy.ndarray) : Measured frames' whitefield.
1145: I0 (numpy.ndarray) : Reference image of the sample.
1146: u (numpy.ndarray) : The discrete geometrical mapping of the detector
1147: plane to the reference image.
1148: di (numpy.ndarray) : Sample's translations along the vertical detector
1149: axis in pixels.
1150: dj (numpy.ndarray) : Sample's translations along the fast detector
1151: axis in pixels.
1152: ds_y (float) : Sampling interval of reference image in pixels along
1153: the vertical axis.
1154: ds_x (float) : Sampling interval of reference image in pixels along
1155: the horizontal axis.
1156: sigma (float) : The standard deviation of `I_n`.
1157: loss (str): Choose between the following loss functions:
1158:
1159: * 'Epsilon': Epsilon loss function (epsilon = 0.5)
1160: * 'Huber' : Huber loss function (k = 1.345)
1161: * 'L1' : L1 norm loss function.
1162: * 'L2' : L2 norm loss function.
1163: num_threads (int): Number of threads.
1164:
1165: Returns:
1166: float : Mean residual value of the pixel mapping fit.
1167:
1168: See Also:
1169: :func:`pyrost.bin.pm_gsearch` : Description of error metric which
1170: is being minimized.
1171:
1172: Notes:
1173: The error metric is given by:
1174:
1175: .. math::
1176:
1177: \varepsilon_{pm}[i, j] = \frac{1}{N}
1178: \sum_{n = 0}^N f\left( \frac{I[n, i, j] - W[i, j]
1179: I_{ref}[u[0, i, j] - di[n], u[1, i, j] - dj[n]]}{\sigma}
1180: \right)
1181:
1182: where :math:`f(x)` is L1 norm, L2 norm or Huber loss function.
1183: """
+1184: if ds_y <= 0.0 or ds_x <= 0.0:
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
+1185: raise ValueError('Sampling intervals must be positive')
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 1185, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 1185, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 1185, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 1185, __pyx_L1_error)
1186:
+1187: cdef loss_func f = choose_loss(loss)
__pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss); /* … */ __pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss); /* … */ __pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss); /* … */ __pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss);
1188:
+1189: cdef int type_num = np.PyArray_TYPE(W.base)
__pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1189, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1189, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1189, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1189, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1190: cdef int Y = I_n.shape[1], X = I_n.shape[2], j, k
__pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_Y = (__pyx_v_I_n.shape[1]); __pyx_v_X = (__pyx_v_I_n.shape[2]);
1191: cdef double err
1192:
+1193: for k in prange(X, schedule='guided', num_threads=num_threads, nogil=True):
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_5 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_7 = (__pyx_t_5 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_7 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for reduction(+:__pyx_v_err) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_5 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_7 = (__pyx_t_5 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_7 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for reduction(+:__pyx_v_err) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_7; __pyx_t_6++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_6);
/* Initialize private variables to invalid values */
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_5 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_7 = (__pyx_t_5 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_7 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for reduction(+:__pyx_v_err) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_5 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_7 = (__pyx_t_5 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_7 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for reduction(+:__pyx_v_err) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_7; __pyx_t_6++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_6);
/* Initialize private variables to invalid values */
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_5 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_7 = (__pyx_t_5 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_7 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for reduction(+:__pyx_v_err) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_5 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_7 = (__pyx_t_5 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_7 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for reduction(+:__pyx_v_err) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_7; __pyx_t_6++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_6);
/* Initialize private variables to invalid values */
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_5 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_7 = (__pyx_t_5 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_7 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for reduction(+:__pyx_v_err) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_5 = __pyx_v_X;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_7 = (__pyx_t_5 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_7 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for reduction(+:__pyx_v_err) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_7; __pyx_t_6++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_6);
/* Initialize private variables to invalid values */
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
+1194: for j in range(Y):
__pyx_t_8 = __pyx_v_Y;
__pyx_t_9 = __pyx_t_8;
for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) {
__pyx_v_j = __pyx_t_10;
/* … */
__pyx_t_8 = __pyx_v_Y;
__pyx_t_9 = __pyx_t_8;
for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) {
__pyx_v_j = __pyx_t_10;
/* … */
__pyx_t_8 = __pyx_v_Y;
__pyx_t_9 = __pyx_t_8;
for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) {
__pyx_v_j = __pyx_t_10;
/* … */
__pyx_t_8 = __pyx_v_Y;
__pyx_t_9 = __pyx_t_8;
for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) {
__pyx_v_j = __pyx_t_10;
+1195: if W[j, k] > 0.0:
__pyx_t_11 = __pyx_v_j;
__pyx_t_12 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_11 * __pyx_v_W.strides[0]) )) + __pyx_t_12)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_11 = __pyx_v_j;
__pyx_t_12 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_11 * __pyx_v_W.strides[0]) )) + __pyx_t_12)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_11 = __pyx_v_j;
__pyx_t_12 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_11 * __pyx_v_W.strides[0]) )) + __pyx_t_12)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_11 = __pyx_v_j;
__pyx_t_12 = __pyx_v_k;
__pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_11 * __pyx_v_W.strides[0]) )) + __pyx_t_12)) ))) > 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
+1196: err += FVU_interp(I_n, W[j, k], I0, di, dj, j, k,
__pyx_t_12 = __pyx_v_j;
__pyx_t_11 = __pyx_v_k;
/* … */
__pyx_v_err = (__pyx_v_err + __pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_12 * __pyx_v_W.strides[0]) )) + __pyx_t_11)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_13 * __pyx_v_u.strides[0]) ) + __pyx_t_14 * __pyx_v_u.strides[1]) )) + __pyx_t_15)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_16 * __pyx_v_u.strides[0]) ) + __pyx_t_17 * __pyx_v_u.strides[1]) )) + __pyx_t_18)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f));
/* … */
__pyx_t_12 = __pyx_v_j;
__pyx_t_11 = __pyx_v_k;
/* … */
__pyx_v_err = (__pyx_v_err + __pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_12 * __pyx_v_W.strides[0]) )) + __pyx_t_11)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_13 * __pyx_v_u.strides[0]) ) + __pyx_t_14 * __pyx_v_u.strides[1]) )) + __pyx_t_15)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_16 * __pyx_v_u.strides[0]) ) + __pyx_t_17 * __pyx_v_u.strides[1]) )) + __pyx_t_18)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f));
/* … */
__pyx_t_12 = __pyx_v_j;
__pyx_t_11 = __pyx_v_k;
/* … */
__pyx_v_err = (__pyx_v_err + __pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_12 * __pyx_v_W.strides[0]) )) + __pyx_t_11)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_13 * __pyx_v_u.strides[0]) ) + __pyx_t_14 * __pyx_v_u.strides[1]) )) + __pyx_t_15)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_16 * __pyx_v_u.strides[0]) ) + __pyx_t_17 * __pyx_v_u.strides[1]) )) + __pyx_t_18)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f));
/* … */
__pyx_t_12 = __pyx_v_j;
__pyx_t_11 = __pyx_v_k;
/* … */
__pyx_v_err = (__pyx_v_err + __pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_FVU_interp(__pyx_v_I_n, (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_12 * __pyx_v_W.strides[0]) )) + __pyx_t_11)) ))), __pyx_v_I0, __pyx_v_di, __pyx_v_dj, __pyx_v_j, __pyx_v_k, (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_13 * __pyx_v_u.strides[0]) ) + __pyx_t_14 * __pyx_v_u.strides[1]) )) + __pyx_t_15)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_16 * __pyx_v_u.strides[0]) ) + __pyx_t_17 * __pyx_v_u.strides[1]) )) + __pyx_t_18)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_sigma, __pyx_v_f));
+1197: u[0, j, k], u[1, j, k], ds_y, ds_x, sigma, f)
__pyx_t_13 = 0;
__pyx_t_14 = __pyx_v_j;
__pyx_t_15 = __pyx_v_k;
__pyx_t_16 = 1;
__pyx_t_17 = __pyx_v_j;
__pyx_t_18 = __pyx_v_k;
/* … */
__pyx_t_13 = 0;
__pyx_t_14 = __pyx_v_j;
__pyx_t_15 = __pyx_v_k;
__pyx_t_16 = 1;
__pyx_t_17 = __pyx_v_j;
__pyx_t_18 = __pyx_v_k;
/* … */
__pyx_t_13 = 0;
__pyx_t_14 = __pyx_v_j;
__pyx_t_15 = __pyx_v_k;
__pyx_t_16 = 1;
__pyx_t_17 = __pyx_v_j;
__pyx_t_18 = __pyx_v_k;
/* … */
__pyx_t_13 = 0;
__pyx_t_14 = __pyx_v_j;
__pyx_t_15 = __pyx_v_k;
__pyx_t_16 = 1;
__pyx_t_17 = __pyx_v_j;
__pyx_t_18 = __pyx_v_k;
1198:
+1199: return err / (X * Y)
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyFloat_FromDouble((__pyx_v_err / ((double)(__pyx_v_X * __pyx_v_Y)))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyFloat_FromDouble((__pyx_v_err / ((double)(__pyx_v_X * __pyx_v_Y)))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyFloat_FromDouble((__pyx_v_err / ((double)(__pyx_v_X * __pyx_v_Y)))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyFloat_FromDouble((__pyx_v_err / ((double)(__pyx_v_X * __pyx_v_Y)))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
1200:
+1201: cdef void FVU_frame(float_t[:, ::1] errors, float_t[:, ::1] R, float_t[:, ::1] I0,
static void __pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_FVU_frame(__Pyx_memviewslice __pyx_v_errors, __Pyx_memviewslice __pyx_v_R, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float64_t __pyx_v_di, __pyx_t_5numpy_float64_t __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_j;
int __pyx_v_k;
int __pyx_v_jj;
int __pyx_v_kk;
int __pyx_v_j0;
int __pyx_v_k0;
int __pyx_v_jj0;
int __pyx_v_jj1;
int __pyx_v_kk0;
int __pyx_v_kk1;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_dn_y;
int __pyx_v_dn_x;
double __pyx_v_y;
double __pyx_v_x;
double __pyx_v_r;
/* … */
/* function exit code */
}
static void __pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_FVU_frame(__Pyx_memviewslice __pyx_v_errors, __Pyx_memviewslice __pyx_v_R, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float64_t __pyx_v_di, __pyx_t_5numpy_float64_t __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_j;
int __pyx_v_k;
int __pyx_v_jj;
int __pyx_v_kk;
int __pyx_v_j0;
int __pyx_v_k0;
int __pyx_v_jj0;
int __pyx_v_jj1;
int __pyx_v_kk0;
int __pyx_v_kk1;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_dn_y;
int __pyx_v_dn_x;
double __pyx_v_y;
double __pyx_v_x;
double __pyx_v_r;
/* … */
/* function exit code */
}
static void __pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_FVU_frame(__Pyx_memviewslice __pyx_v_errors, __Pyx_memviewslice __pyx_v_R, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float32_t __pyx_v_di, __pyx_t_5numpy_float32_t __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_j;
int __pyx_v_k;
int __pyx_v_jj;
int __pyx_v_kk;
int __pyx_v_j0;
int __pyx_v_k0;
int __pyx_v_jj0;
int __pyx_v_jj1;
int __pyx_v_kk0;
int __pyx_v_kk1;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_dn_y;
int __pyx_v_dn_x;
double __pyx_v_y;
double __pyx_v_x;
double __pyx_v_r;
/* … */
/* function exit code */
}
static void __pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_FVU_frame(__Pyx_memviewslice __pyx_v_errors, __Pyx_memviewslice __pyx_v_R, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, __pyx_t_5numpy_float32_t __pyx_v_di, __pyx_t_5numpy_float32_t __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h, double __pyx_v_sigma, __pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f) {
int __pyx_v_Y;
int __pyx_v_X;
int __pyx_v_j;
int __pyx_v_k;
int __pyx_v_jj;
int __pyx_v_kk;
int __pyx_v_j0;
int __pyx_v_k0;
int __pyx_v_jj0;
int __pyx_v_jj1;
int __pyx_v_kk0;
int __pyx_v_kk1;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_dn_y;
int __pyx_v_dn_x;
double __pyx_v_y;
double __pyx_v_x;
double __pyx_v_r;
/* … */
/* function exit code */
}
1202: uint_t[:, ::1] I_n, float_t[:, ::1] W, float_t[:, :, ::1] u, float_t di, float_t dj,
1203: double ds_y, double ds_x, double h, double sigma, loss_func f) nogil:
+1204: cdef int Y = I_n.shape[0], X = I_n.shape[1]
__pyx_v_Y = (__pyx_v_I_n.shape[0]); __pyx_v_X = (__pyx_v_I_n.shape[1]); /* … */ __pyx_v_Y = (__pyx_v_I_n.shape[0]); __pyx_v_X = (__pyx_v_I_n.shape[1]); /* … */ __pyx_v_Y = (__pyx_v_I_n.shape[0]); __pyx_v_X = (__pyx_v_I_n.shape[1]); /* … */ __pyx_v_Y = (__pyx_v_I_n.shape[0]); __pyx_v_X = (__pyx_v_I_n.shape[1]);
1205: cdef int j, k, jj, kk, j0, k0, jj0, jj1, kk0, kk1
+1206: cdef int Y0 = I0.shape[0], X0 = I0.shape[1]
__pyx_v_Y0 = (__pyx_v_I0.shape[0]); __pyx_v_X0 = (__pyx_v_I0.shape[1]); /* … */ __pyx_v_Y0 = (__pyx_v_I0.shape[0]); __pyx_v_X0 = (__pyx_v_I0.shape[1]); /* … */ __pyx_v_Y0 = (__pyx_v_I0.shape[0]); __pyx_v_X0 = (__pyx_v_I0.shape[1]); /* … */ __pyx_v_Y0 = (__pyx_v_I0.shape[0]); __pyx_v_X0 = (__pyx_v_I0.shape[1]);
+1207: cdef int dn_y = <int>ceil((4.0 * h) / ds_y), dn_x = <int>ceil((4.0 * h) / ds_x)
__pyx_v_dn_y = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_y))); __pyx_v_dn_x = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_x))); /* … */ __pyx_v_dn_y = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_y))); __pyx_v_dn_x = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_x))); /* … */ __pyx_v_dn_y = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_y))); __pyx_v_dn_x = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_x))); /* … */ __pyx_v_dn_y = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_y))); __pyx_v_dn_x = ((int)ceil(((4.0 * __pyx_v_h) / __pyx_v_ds_x)));
1208: cdef double y, x, r, I
1209:
+1210: for j in range(Y):
__pyx_t_1 = __pyx_v_Y;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_j = __pyx_t_3;
/* … */
__pyx_t_1 = __pyx_v_Y;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_j = __pyx_t_3;
/* … */
__pyx_t_1 = __pyx_v_Y;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_j = __pyx_t_3;
/* … */
__pyx_t_1 = __pyx_v_Y;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_j = __pyx_t_3;
+1211: for k in range(X):
__pyx_t_4 = __pyx_v_X;
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_k = __pyx_t_6;
/* … */
__pyx_t_4 = __pyx_v_X;
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_k = __pyx_t_6;
/* … */
__pyx_t_4 = __pyx_v_X;
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_k = __pyx_t_6;
/* … */
__pyx_t_4 = __pyx_v_X;
__pyx_t_5 = __pyx_t_4;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_k = __pyx_t_6;
+1212: y = u[0, j, k] - di
__pyx_t_7 = 0;
__pyx_t_8 = __pyx_v_j;
__pyx_t_9 = __pyx_v_k;
__pyx_v_y = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_7 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_9)) ))) - __pyx_v_di);
/* … */
__pyx_t_7 = 0;
__pyx_t_8 = __pyx_v_j;
__pyx_t_9 = __pyx_v_k;
__pyx_v_y = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_7 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_9)) ))) - __pyx_v_di);
/* … */
__pyx_t_7 = 0;
__pyx_t_8 = __pyx_v_j;
__pyx_t_9 = __pyx_v_k;
__pyx_v_y = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_7 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_9)) ))) - __pyx_v_di);
/* … */
__pyx_t_7 = 0;
__pyx_t_8 = __pyx_v_j;
__pyx_t_9 = __pyx_v_k;
__pyx_v_y = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_7 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_9)) ))) - __pyx_v_di);
+1213: x = u[1, j, k] - dj
__pyx_t_9 = 1;
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_v_x = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_9 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) ))) - __pyx_v_dj);
/* … */
__pyx_t_9 = 1;
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_v_x = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_9 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) ))) - __pyx_v_dj);
/* … */
__pyx_t_9 = 1;
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_v_x = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_9 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) ))) - __pyx_v_dj);
/* … */
__pyx_t_9 = 1;
__pyx_t_8 = __pyx_v_j;
__pyx_t_7 = __pyx_v_k;
__pyx_v_x = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_9 * __pyx_v_u.strides[0]) ) + __pyx_t_8 * __pyx_v_u.strides[1]) )) + __pyx_t_7)) ))) - __pyx_v_dj);
1214:
+1215: j0 = <int>(y / ds_y) + 1
__pyx_v_j0 = (((int)(__pyx_v_y / __pyx_v_ds_y)) + 1);
/* … */
__pyx_v_j0 = (((int)(__pyx_v_y / __pyx_v_ds_y)) + 1);
/* … */
__pyx_v_j0 = (((int)(__pyx_v_y / __pyx_v_ds_y)) + 1);
/* … */
__pyx_v_j0 = (((int)(__pyx_v_y / __pyx_v_ds_y)) + 1);
+1216: k0 = <int>(x / ds_x) + 1
__pyx_v_k0 = (((int)(__pyx_v_x / __pyx_v_ds_x)) + 1);
/* … */
__pyx_v_k0 = (((int)(__pyx_v_x / __pyx_v_ds_x)) + 1);
/* … */
__pyx_v_k0 = (((int)(__pyx_v_x / __pyx_v_ds_x)) + 1);
/* … */
__pyx_v_k0 = (((int)(__pyx_v_x / __pyx_v_ds_x)) + 1);
1217:
+1218: jj0 = j0 - dn_y if j0 - dn_y > 0 else 0
if ((((__pyx_v_j0 - __pyx_v_dn_y) > 0) != 0)) {
__pyx_t_10 = (__pyx_v_j0 - __pyx_v_dn_y);
} else {
__pyx_t_10 = 0;
}
__pyx_v_jj0 = __pyx_t_10;
/* … */
if ((((__pyx_v_j0 - __pyx_v_dn_y) > 0) != 0)) {
__pyx_t_10 = (__pyx_v_j0 - __pyx_v_dn_y);
} else {
__pyx_t_10 = 0;
}
__pyx_v_jj0 = __pyx_t_10;
/* … */
if ((((__pyx_v_j0 - __pyx_v_dn_y) > 0) != 0)) {
__pyx_t_10 = (__pyx_v_j0 - __pyx_v_dn_y);
} else {
__pyx_t_10 = 0;
}
__pyx_v_jj0 = __pyx_t_10;
/* … */
if ((((__pyx_v_j0 - __pyx_v_dn_y) > 0) != 0)) {
__pyx_t_10 = (__pyx_v_j0 - __pyx_v_dn_y);
} else {
__pyx_t_10 = 0;
}
__pyx_v_jj0 = __pyx_t_10;
+1219: jj1 = j0 + dn_y if j0 + dn_y < Y0 else Y0
if ((((__pyx_v_j0 + __pyx_v_dn_y) < __pyx_v_Y0) != 0)) {
__pyx_t_10 = (__pyx_v_j0 + __pyx_v_dn_y);
} else {
__pyx_t_10 = __pyx_v_Y0;
}
__pyx_v_jj1 = __pyx_t_10;
/* … */
if ((((__pyx_v_j0 + __pyx_v_dn_y) < __pyx_v_Y0) != 0)) {
__pyx_t_10 = (__pyx_v_j0 + __pyx_v_dn_y);
} else {
__pyx_t_10 = __pyx_v_Y0;
}
__pyx_v_jj1 = __pyx_t_10;
/* … */
if ((((__pyx_v_j0 + __pyx_v_dn_y) < __pyx_v_Y0) != 0)) {
__pyx_t_10 = (__pyx_v_j0 + __pyx_v_dn_y);
} else {
__pyx_t_10 = __pyx_v_Y0;
}
__pyx_v_jj1 = __pyx_t_10;
/* … */
if ((((__pyx_v_j0 + __pyx_v_dn_y) < __pyx_v_Y0) != 0)) {
__pyx_t_10 = (__pyx_v_j0 + __pyx_v_dn_y);
} else {
__pyx_t_10 = __pyx_v_Y0;
}
__pyx_v_jj1 = __pyx_t_10;
+1220: kk0 = k0 - dn_x if k0 - dn_x > 0 else 0
if ((((__pyx_v_k0 - __pyx_v_dn_x) > 0) != 0)) {
__pyx_t_10 = (__pyx_v_k0 - __pyx_v_dn_x);
} else {
__pyx_t_10 = 0;
}
__pyx_v_kk0 = __pyx_t_10;
/* … */
if ((((__pyx_v_k0 - __pyx_v_dn_x) > 0) != 0)) {
__pyx_t_10 = (__pyx_v_k0 - __pyx_v_dn_x);
} else {
__pyx_t_10 = 0;
}
__pyx_v_kk0 = __pyx_t_10;
/* … */
if ((((__pyx_v_k0 - __pyx_v_dn_x) > 0) != 0)) {
__pyx_t_10 = (__pyx_v_k0 - __pyx_v_dn_x);
} else {
__pyx_t_10 = 0;
}
__pyx_v_kk0 = __pyx_t_10;
/* … */
if ((((__pyx_v_k0 - __pyx_v_dn_x) > 0) != 0)) {
__pyx_t_10 = (__pyx_v_k0 - __pyx_v_dn_x);
} else {
__pyx_t_10 = 0;
}
__pyx_v_kk0 = __pyx_t_10;
+1221: kk1 = k0 + dn_x if k0 + dn_x < X0 else X0
if ((((__pyx_v_k0 + __pyx_v_dn_x) < __pyx_v_X0) != 0)) {
__pyx_t_10 = (__pyx_v_k0 + __pyx_v_dn_x);
} else {
__pyx_t_10 = __pyx_v_X0;
}
__pyx_v_kk1 = __pyx_t_10;
/* … */
if ((((__pyx_v_k0 + __pyx_v_dn_x) < __pyx_v_X0) != 0)) {
__pyx_t_10 = (__pyx_v_k0 + __pyx_v_dn_x);
} else {
__pyx_t_10 = __pyx_v_X0;
}
__pyx_v_kk1 = __pyx_t_10;
/* … */
if ((((__pyx_v_k0 + __pyx_v_dn_x) < __pyx_v_X0) != 0)) {
__pyx_t_10 = (__pyx_v_k0 + __pyx_v_dn_x);
} else {
__pyx_t_10 = __pyx_v_X0;
}
__pyx_v_kk1 = __pyx_t_10;
/* … */
if ((((__pyx_v_k0 + __pyx_v_dn_x) < __pyx_v_X0) != 0)) {
__pyx_t_10 = (__pyx_v_k0 + __pyx_v_dn_x);
} else {
__pyx_t_10 = __pyx_v_X0;
}
__pyx_v_kk1 = __pyx_t_10;
1222:
+1223: for jj in range(jj0, jj1):
__pyx_t_10 = __pyx_v_jj1;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = __pyx_v_jj0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_jj = __pyx_t_12;
/* … */
__pyx_t_10 = __pyx_v_jj1;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = __pyx_v_jj0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_jj = __pyx_t_12;
/* … */
__pyx_t_10 = __pyx_v_jj1;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = __pyx_v_jj0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_jj = __pyx_t_12;
/* … */
__pyx_t_10 = __pyx_v_jj1;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = __pyx_v_jj0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_jj = __pyx_t_12;
+1224: for kk in range(kk0, kk1):
__pyx_t_13 = __pyx_v_kk1;
__pyx_t_14 = __pyx_t_13;
for (__pyx_t_15 = __pyx_v_kk0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
__pyx_v_kk = __pyx_t_15;
/* … */
__pyx_t_13 = __pyx_v_kk1;
__pyx_t_14 = __pyx_t_13;
for (__pyx_t_15 = __pyx_v_kk0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
__pyx_v_kk = __pyx_t_15;
/* … */
__pyx_t_13 = __pyx_v_kk1;
__pyx_t_14 = __pyx_t_13;
for (__pyx_t_15 = __pyx_v_kk0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
__pyx_v_kk = __pyx_t_15;
/* … */
__pyx_t_13 = __pyx_v_kk1;
__pyx_t_14 = __pyx_t_13;
for (__pyx_t_15 = __pyx_v_kk0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
__pyx_v_kk = __pyx_t_15;
+1225: r = rbf((ds_y * jj - y) * (ds_y * jj - y) + (ds_x * kk - x) * (ds_x * kk - x), h)
__pyx_v_r = __pyx_f_6pyrost_3bin_6pyrost_rbf(((((__pyx_v_ds_y * __pyx_v_jj) - __pyx_v_y) * ((__pyx_v_ds_y * __pyx_v_jj) - __pyx_v_y)) + (((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x) * ((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x))), __pyx_v_h);
/* … */
__pyx_v_r = __pyx_f_6pyrost_3bin_6pyrost_rbf(((((__pyx_v_ds_y * __pyx_v_jj) - __pyx_v_y) * ((__pyx_v_ds_y * __pyx_v_jj) - __pyx_v_y)) + (((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x) * ((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x))), __pyx_v_h);
/* … */
__pyx_v_r = __pyx_f_6pyrost_3bin_6pyrost_rbf(((((__pyx_v_ds_y * __pyx_v_jj) - __pyx_v_y) * ((__pyx_v_ds_y * __pyx_v_jj) - __pyx_v_y)) + (((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x) * ((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x))), __pyx_v_h);
/* … */
__pyx_v_r = __pyx_f_6pyrost_3bin_6pyrost_rbf(((((__pyx_v_ds_y * __pyx_v_jj) - __pyx_v_y) * ((__pyx_v_ds_y * __pyx_v_jj) - __pyx_v_y)) + (((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x) * ((__pyx_v_ds_x * __pyx_v_kk) - __pyx_v_x))), __pyx_v_h);
+1226: errors[jj, kk] += r * f((<double>I_n[j, k] - W[j, k] * I0[jj, kk]) / sigma)
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
__pyx_t_9 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = __pyx_v_jj;
__pyx_t_18 = __pyx_v_kk;
__pyx_t_19 = __pyx_v_jj;
__pyx_t_20 = __pyx_v_kk;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_errors.data + __pyx_t_19 * __pyx_v_errors.strides[0]) )) + __pyx_t_20)) )) += (__pyx_v_r * __pyx_v_f(((((double)(*((__pyx_t_5numpy_uint64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_7 * __pyx_v_I_n.strides[0]) )) + __pyx_t_8)) )))) - ((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_9 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_17 * __pyx_v_I0.strides[0]) )) + __pyx_t_18)) ))))) / ((__pyx_t_5numpy_float64_t)__pyx_v_sigma))));
/* … */
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
__pyx_t_9 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = __pyx_v_jj;
__pyx_t_18 = __pyx_v_kk;
__pyx_t_19 = __pyx_v_jj;
__pyx_t_20 = __pyx_v_kk;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_errors.data + __pyx_t_19 * __pyx_v_errors.strides[0]) )) + __pyx_t_20)) )) += (__pyx_v_r * __pyx_v_f(((((double)(*((__pyx_t_5numpy_uint32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_7 * __pyx_v_I_n.strides[0]) )) + __pyx_t_8)) )))) - ((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_9 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) ))) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_17 * __pyx_v_I0.strides[0]) )) + __pyx_t_18)) ))))) / ((__pyx_t_5numpy_float64_t)__pyx_v_sigma))));
/* … */
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
__pyx_t_9 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = __pyx_v_jj;
__pyx_t_18 = __pyx_v_kk;
__pyx_t_19 = __pyx_v_jj;
__pyx_t_20 = __pyx_v_kk;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_errors.data + __pyx_t_19 * __pyx_v_errors.strides[0]) )) + __pyx_t_20)) )) += (__pyx_v_r * __pyx_v_f(((((double)(*((__pyx_t_5numpy_uint64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_7 * __pyx_v_I_n.strides[0]) )) + __pyx_t_8)) )))) - ((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_9 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_17 * __pyx_v_I0.strides[0]) )) + __pyx_t_18)) ))))) / __pyx_v_sigma)));
/* … */
__pyx_t_7 = __pyx_v_j;
__pyx_t_8 = __pyx_v_k;
__pyx_t_9 = __pyx_v_j;
__pyx_t_16 = __pyx_v_k;
__pyx_t_17 = __pyx_v_jj;
__pyx_t_18 = __pyx_v_kk;
__pyx_t_19 = __pyx_v_jj;
__pyx_t_20 = __pyx_v_kk;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_errors.data + __pyx_t_19 * __pyx_v_errors.strides[0]) )) + __pyx_t_20)) )) += (__pyx_v_r * __pyx_v_f(((((double)(*((__pyx_t_5numpy_uint32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_7 * __pyx_v_I_n.strides[0]) )) + __pyx_t_8)) )))) - ((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_9 * __pyx_v_W.strides[0]) )) + __pyx_t_16)) ))) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_17 * __pyx_v_I0.strides[0]) )) + __pyx_t_18)) ))))) / __pyx_v_sigma)));
+1227: R[jj, kk] += r
__pyx_t_18 = __pyx_v_jj;
__pyx_t_17 = __pyx_v_kk;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_R.data + __pyx_t_18 * __pyx_v_R.strides[0]) )) + __pyx_t_17)) )) += __pyx_v_r;
}
}
}
}
/* … */
__pyx_t_18 = __pyx_v_jj;
__pyx_t_17 = __pyx_v_kk;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_R.data + __pyx_t_18 * __pyx_v_R.strides[0]) )) + __pyx_t_17)) )) += __pyx_v_r;
}
}
}
}
/* … */
__pyx_t_18 = __pyx_v_jj;
__pyx_t_17 = __pyx_v_kk;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_R.data + __pyx_t_18 * __pyx_v_R.strides[0]) )) + __pyx_t_17)) )) += __pyx_v_r;
}
}
}
}
/* … */
__pyx_t_18 = __pyx_v_jj;
__pyx_t_17 = __pyx_v_kk;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_R.data + __pyx_t_18 * __pyx_v_R.strides[0]) )) + __pyx_t_17)) )) += __pyx_v_r;
}
}
}
}
1228:
+1229: def ref_errors(uint_t[:, :, ::1] I_n not None, float_t[:, ::1] W not None, float_t[:, ::1] I0 not None,
/* Python wrapper */
static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_17ref_errors(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6pyrost_3bin_6pyrost_16ref_errors[] = "Return the residuals for the reference image regression.\n\n Args:\n I_n (numpy.ndarray) : Measured intensity frames.\n W (numpy.ndarray) : Measured frames' whitefield.\n I0 (numpy.ndarray) : Reference image of the sample.\n u (numpy.ndarray) : The discrete geometrical mapping of the detector\n plane to the reference image.\n di (numpy.ndarray) : Sample's translations along the vertical\n detector axis in pixels.\n dj (numpy.ndarray): Sample's translations along the fast detector\n axis in pixels.\n ds_y (float) : Sampling interval of reference image in pixels along\n the vertical axis.\n ds_x (float) : Sampling interval of reference image in pixels along\n the horizontal axis.\n h (float) : Kernel bandwidth in pixels.\n sigma (float) : The standard deviation of `I_n`.\n loss (str) : Choose between the following loss functions:\n\n * 'Epsilon': Epsilon loss function (epsilon = 0.5)\n * 'Huber' : Huber loss function (k = 1.345)\n * 'L1' : L1 norm loss function.\n * 'L2' : L2 norm loss function.\n\n num_threads (int) : Number of threads.\n\n Returns:\n numpy.ndarray : Residuals array of the reference image regression.\n\n Notes:\n The pixel mapping `u` maps the intensity measurements from the\n detector plane to the reference plane as follows:\n\n .. math::\n i_{ref}[n, i, j] = u[0, i, j] + di[n], \\; j_{ref}[n, i, j] = u[1, i, j] + dj[n]\n\n The error metric is given by:\n\n .. math::\n\n \\varepsilon_{ref}[i, j] = \\sum_{n, i^{\\prime}, j^{\\prime}}\n K[i - i_{ref}[n, i^{\\prime}, j^{\\prime}], \n j - j_{ref}[n, i^{\\prime}, j^{\\prime}], h] \\;\n f\\left( \\frac{I_n[n, i^{\\prime}, j^{\\prime}] -\n W[i^{\\prime}, j^{\\prime}] I_{ref}[i, j]}{\\sigma} \\right)\n\n ""where :math:`f(x)` is L1 norm, L2 norm or Huber loss function\n and :math:`K[i, j, h] = \\frac{1}{\\sqrt{2 \\pi}} \\exp(-\\frac{i^2 + j^2}{h})`\n is the Gaussian kernel.\n\n See Also:\n :func:`pyrost.bin.KR_reference` : Description of the reference image\n estimator.\n ";
static PyMethodDef __pyx_mdef_6pyrost_3bin_6pyrost_17ref_errors = {"ref_errors", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pyrost_3bin_6pyrost_17ref_errors, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_16ref_errors};
static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_17ref_errors(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_signatures = 0;
PyObject *__pyx_v_args = 0;
PyObject *__pyx_v_kwargs = 0;
CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
PyObject* values[4] = {0,0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 1229, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 1229, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
}
__pyx_v_signatures = values[0];
__pyx_v_args = values[1];
__pyx_v_kwargs = values[2];
__pyx_v_defaults = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1229, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_16ref_errors(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_16ref_errors(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
PyObject *__pyx_v_dest_sig = NULL;
Py_ssize_t __pyx_v_i;
PyTypeObject *__pyx_v_ndarray = 0;
__Pyx_memviewslice __pyx_v_memslice;
Py_ssize_t __pyx_v_itemsize;
int __pyx_v_dtype_signed;
char __pyx_v_kind;
int __pyx_v____pyx_uint64_t_is_signed;
int __pyx_v____pyx_uint32_t_is_signed;
PyObject *__pyx_v_arg = NULL;
PyObject *__pyx_v_dtype = NULL;
PyObject *__pyx_v_arg_base = NULL;
PyObject *__pyx_v_candidates = NULL;
PyObject *__pyx_v_sig = NULL;
int __pyx_v_match_found;
PyObject *__pyx_v_src_sig = NULL;
PyObject *__pyx_v_dst_type = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("ref_errors", 0);
__Pyx_INCREF(__pyx_v_kwargs);
__pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{ Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
}
}
__pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_3 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1229, __pyx_L1_error)
__pyx_t_3 = ((!__pyx_t_4) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L4_bool_binop_done:;
if (__pyx_t_2) {
__Pyx_INCREF(Py_None);
__Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
}
__pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_v_itemsize = -1L;
__pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
__pyx_v____pyx_uint32_t_is_signed = (!((((__pyx_t_5numpy_uint32_t)-1L) > 0) != 0));
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 1229, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1229, __pyx_L1_error)
__pyx_t_2 = ((0 < __pyx_t_5) != 0);
if (__pyx_t_2) {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1229, __pyx_L1_error)
}
__pyx_t_1 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 0);
__Pyx_INCREF(__pyx_t_1);
__pyx_v_arg = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L6;
}
__pyx_t_3 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L7_bool_binop_done;
}
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1229, __pyx_L1_error)
}
__pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_I_n, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1229, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_4 != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L7_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1229, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_I_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_arg = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L6;
}
/*else*/ {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 1229, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1229, __pyx_L1_error)
__pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_INCREF(__pyx_int_10);
__Pyx_GIVEREF(__pyx_int_10);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_10);
__Pyx_INCREF(__pyx_n_s_s);
__Pyx_GIVEREF(__pyx_n_s_s);
PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_Raise(__pyx_t_6, 0, 0, 0);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__PYX_ERR(0, 1229, __pyx_L1_error)
}
__pyx_L6:;
while (1) {
__pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_dtype = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L12;
}
__pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_arg_base = __pyx_t_6;
__pyx_t_6 = 0;
__pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_dtype = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L13;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__pyx_v_dtype = Py_None;
}
__pyx_L13:;
goto __pyx_L12;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__pyx_v_dtype = Py_None;
}
__pyx_L12:;
__pyx_v_itemsize = -1L;
__pyx_t_2 = (__pyx_v_dtype != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_itemsize = __pyx_t_5;
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_kind = __pyx_t_7;
__pyx_v_dtype_signed = (__pyx_v_kind == 'i');
switch (__pyx_v_kind) {
case 'i':
case 'u':
__pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L16_bool_binop_done;
}
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L16_bool_binop_done;
}
__pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L16_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1229, __pyx_L1_error)
goto __pyx_L10_break;
}
__pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint32_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L20_bool_binop_done;
}
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L20_bool_binop_done;
}
__pyx_t_2 = ((!((__pyx_v____pyx_uint32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L20_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1229, __pyx_L1_error)
goto __pyx_L10_break;
}
break;
case 'f':
break;
case 'c':
break;
case 'O':
break;
default: break;
}
}
}
__pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L24_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L24_bool_binop_done:;
if (__pyx_t_3) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_3 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_3) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1229, __pyx_L1_error)
goto __pyx_L10_break;
}
/*else*/ {
PyErr_Clear();
}
}
__pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L28_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint32_t))) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L28_bool_binop_done:;
if (__pyx_t_3) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_3 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_3) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1229, __pyx_L1_error)
goto __pyx_L10_break;
}
/*else*/ {
PyErr_Clear();
}
}
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1229, __pyx_L1_error)
goto __pyx_L10_break;
}
__pyx_L10_break:;
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 1229, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1229, __pyx_L1_error)
__pyx_t_3 = ((1 < __pyx_t_5) != 0);
if (__pyx_t_3) {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1229, __pyx_L1_error)
}
__pyx_t_6 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 1);
__Pyx_INCREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
__pyx_t_6 = 0;
goto __pyx_L31;
}
__pyx_t_2 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_2 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_3 = __pyx_t_4;
goto __pyx_L32_bool_binop_done;
}
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1229, __pyx_L1_error)
}
__pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_W, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1229, __pyx_L1_error)
__pyx_t_2 = (__pyx_t_4 != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L32_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1229, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_W); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
__pyx_t_6 = 0;
goto __pyx_L31;
}
/*else*/ {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 1229, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1229, __pyx_L1_error)
__pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_int_10);
__Pyx_GIVEREF(__pyx_int_10);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_10);
__Pyx_INCREF(__pyx_n_s_s);
__Pyx_GIVEREF(__pyx_n_s_s);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 1229, __pyx_L1_error)
}
__pyx_L31:;
while (1) {
__pyx_t_3 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
__pyx_t_1 = 0;
goto __pyx_L37;
}
__pyx_t_3 = __pyx_memoryview_check(__pyx_v_arg);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_arg_base, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
__pyx_t_1 = 0;
goto __pyx_L38;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
}
__pyx_L38:;
goto __pyx_L37;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
}
__pyx_L37:;
__pyx_v_itemsize = -1L;
__pyx_t_3 = (__pyx_v_dtype != Py_None);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_itemsize = __pyx_t_5;
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_1); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_kind = __pyx_t_7;
__pyx_v_dtype_signed = (__pyx_v_kind == 'i');
switch (__pyx_v_kind) {
case 'i':
case 'u':
break;
case 'f':
__pyx_t_3 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L41_bool_binop_done;
}
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 2) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L41_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1229, __pyx_L1_error)
goto __pyx_L35_break;
}
__pyx_t_3 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L44_bool_binop_done;
}
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 2) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L44_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1229, __pyx_L1_error)
goto __pyx_L35_break;
}
break;
case 'c':
break;
case 'O':
break;
default: break;
}
}
}
__pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L47_bool_binop_done;
}
__pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L47_bool_binop_done:;
if (__pyx_t_2) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_2 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_2) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1229, __pyx_L1_error)
goto __pyx_L35_break;
}
/*else*/ {
PyErr_Clear();
}
}
__pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L51_bool_binop_done;
}
__pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L51_bool_binop_done:;
if (__pyx_t_2) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_2 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_2) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1229, __pyx_L1_error)
goto __pyx_L35_break;
}
/*else*/ {
PyErr_Clear();
}
}
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1229, __pyx_L1_error)
goto __pyx_L35_break;
}
__pyx_L35_break:;
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_candidates = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_5 = 0;
if (unlikely(__pyx_v_signatures == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1229, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_9, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_10);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_v_match_found = 0;
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_14 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
__pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
if (likely(__pyx_t_14)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
__Pyx_INCREF(__pyx_t_14);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_13, function);
}
}
__pyx_t_12 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2);
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
__pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
if (likely(__pyx_t_12)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
__Pyx_INCREF(__pyx_t_12);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_13, function);
}
}
__pyx_t_6 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__3);
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_15 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1229, __pyx_L1_error)
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_i = __pyx_t_17;
__pyx_t_6 = PyList_GET_ITEM(__pyx_v_dest_sig, __pyx_v_i);
__Pyx_INCREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_2 = (__pyx_v_dst_type != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_13 = PyObject_RichCompare(__pyx_t_6, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
if (__pyx_t_3) {
__pyx_v_match_found = 1;
goto __pyx_L59;
}
/*else*/ {
__pyx_v_match_found = 0;
goto __pyx_L57_break;
}
__pyx_L59:;
}
}
__pyx_L57_break:;
__pyx_t_3 = (__pyx_v_match_found != 0);
if (__pyx_t_3) {
__pyx_t_18 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 1229, __pyx_L1_error)
}
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
__pyx_t_2 = ((!__pyx_t_3) != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 1229, __pyx_L1_error)
}
__pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1229, __pyx_L1_error)
__pyx_t_2 = ((__pyx_t_9 > 1) != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 1229, __pyx_L1_error)
}
/*else*/ {
__Pyx_XDECREF(__pyx_r);
if (unlikely(__pyx_v_signatures == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1229, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), PyList_GET_ITEM(__pyx_v_candidates, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_AddTraceback("pyrost.bin.pyrost.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_dest_sig);
__Pyx_XDECREF(__pyx_v_ndarray);
__Pyx_XDECREF(__pyx_v_arg);
__Pyx_XDECREF(__pyx_v_dtype);
__Pyx_XDECREF(__pyx_v_arg_base);
__Pyx_XDECREF(__pyx_v_candidates);
__Pyx_XDECREF(__pyx_v_sig);
__Pyx_XDECREF(__pyx_v_src_sig);
__Pyx_XDECREF(__pyx_v_dst_type);
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_264__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults68, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults68, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults68, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults68, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyArrayObject *__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_103ref_errors(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_6pyrost_3bin_6pyrost_103ref_errors = {"__pyx_fuse_0_0ref_errors", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_103ref_errors, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_16ref_errors};
static PyArrayObject *__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_103ref_errors(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_h;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
unsigned int __pyx_v_num_threads;
PyArrayObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("ref_errors (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_h,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults68 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults68, __pyx_self);
values[10] = __pyx_dynamic_args->__pyx_arg_loss;
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);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 1); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 2); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 3); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 4); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 5); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 6); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 7); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 8); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 9); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[10] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 11:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[11] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ref_errors") < 0)) __PYX_ERR(0, 1229, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 1229, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 1229, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 1229, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 1230, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 1230, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 1230, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1231, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1231, __pyx_L3_error)
__pyx_v_h = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_h == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1231, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1231, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[10]);
if (values[11]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[11]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1231, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1229, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.ref_errors", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 1229, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 1229, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 1229, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 1230, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 1230, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 1230, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 1231, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_102ref_errors(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyArrayObject *__pyx_pf_6pyrost_3bin_6pyrost_102ref_errors(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h, double __pyx_v_sigma, PyObject *__pyx_v_loss, unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
CYTHON_UNUSED int __pyx_v_N;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_i;
int __pyx_v_j;
int __pyx_v_k;
int __pyx_v_t;
npy_intp *__pyx_v_shape;
__Pyx_memviewslice __pyx_v_err_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_R_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_v_err = 0;
__Pyx_memviewslice __pyx_v__err = { 0, 0, { 0 }, { 0 }, { 0 } };
__pyx_t_5numpy_float64_t __pyx_v_err_sum;
__pyx_t_5numpy_float64_t __pyx_v_R_sum;
PyArrayObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_0_0ref_errors", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_11, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_12, 1);
__Pyx_AddTraceback("pyrost.bin.pyrost.ref_errors", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XDEC_MEMVIEW(&__pyx_v_err_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_R_buf, 1);
__Pyx_XDECREF((PyObject *)__pyx_v_err);
__PYX_XDEC_MEMVIEW(&__pyx_v__err, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF((PyObject *)__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_266__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults69, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults69, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults69, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults69, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyArrayObject *__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_105ref_errors(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_6pyrost_3bin_6pyrost_105ref_errors = {"__pyx_fuse_0_1ref_errors", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_105ref_errors, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_16ref_errors};
static PyArrayObject *__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_105ref_errors(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_h;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
unsigned int __pyx_v_num_threads;
PyArrayObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("ref_errors (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_h,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults69 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults69, __pyx_self);
values[10] = __pyx_dynamic_args->__pyx_arg_loss;
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);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 1); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 2); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 3); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 4); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 5); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 6); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 7); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 8); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 9); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[10] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 11:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[11] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ref_errors") < 0)) __PYX_ERR(0, 1229, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 1229, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 1229, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 1229, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 1230, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 1230, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 1230, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1231, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1231, __pyx_L3_error)
__pyx_v_h = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_h == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1231, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1231, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[10]);
if (values[11]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[11]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1231, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1229, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.ref_errors", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 1229, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 1229, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 1229, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 1230, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 1230, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 1230, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 1231, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_104ref_errors(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyArrayObject *__pyx_pf_6pyrost_3bin_6pyrost_104ref_errors(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h, double __pyx_v_sigma, PyObject *__pyx_v_loss, unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
CYTHON_UNUSED int __pyx_v_N;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_i;
int __pyx_v_j;
int __pyx_v_k;
int __pyx_v_t;
npy_intp *__pyx_v_shape;
__Pyx_memviewslice __pyx_v_err_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_R_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_v_err = 0;
__Pyx_memviewslice __pyx_v__err = { 0, 0, { 0 }, { 0 }, { 0 } };
__pyx_t_5numpy_float32_t __pyx_v_err_sum;
__pyx_t_5numpy_float32_t __pyx_v_R_sum;
PyArrayObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_0_1ref_errors", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_11, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_12, 1);
__Pyx_AddTraceback("pyrost.bin.pyrost.ref_errors", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XDEC_MEMVIEW(&__pyx_v_err_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_R_buf, 1);
__Pyx_XDECREF((PyObject *)__pyx_v_err);
__PYX_XDEC_MEMVIEW(&__pyx_v__err, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF((PyObject *)__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_268__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults70, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults70, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults70, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults70, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyArrayObject *__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_107ref_errors(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_6pyrost_3bin_6pyrost_107ref_errors = {"__pyx_fuse_1_0ref_errors", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_107ref_errors, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_16ref_errors};
static PyArrayObject *__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_107ref_errors(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_h;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
unsigned int __pyx_v_num_threads;
PyArrayObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("ref_errors (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_h,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults70 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults70, __pyx_self);
values[10] = __pyx_dynamic_args->__pyx_arg_loss;
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);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 1); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 2); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 3); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 4); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 5); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 6); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 7); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 8); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 9); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[10] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 11:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[11] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ref_errors") < 0)) __PYX_ERR(0, 1229, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 1229, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 1229, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 1229, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 1230, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 1230, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 1230, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1231, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1231, __pyx_L3_error)
__pyx_v_h = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_h == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1231, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1231, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[10]);
if (values[11]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[11]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1231, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1229, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.ref_errors", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 1229, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 1229, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 1229, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 1230, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 1230, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 1230, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 1231, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_106ref_errors(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyArrayObject *__pyx_pf_6pyrost_3bin_6pyrost_106ref_errors(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h, double __pyx_v_sigma, PyObject *__pyx_v_loss, unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
CYTHON_UNUSED int __pyx_v_N;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_i;
int __pyx_v_j;
int __pyx_v_k;
int __pyx_v_t;
npy_intp *__pyx_v_shape;
__Pyx_memviewslice __pyx_v_err_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_R_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_v_err = 0;
__Pyx_memviewslice __pyx_v__err = { 0, 0, { 0 }, { 0 }, { 0 } };
__pyx_t_5numpy_float64_t __pyx_v_err_sum;
__pyx_t_5numpy_float64_t __pyx_v_R_sum;
PyArrayObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_1_0ref_errors", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_11, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_12, 1);
__Pyx_AddTraceback("pyrost.bin.pyrost.ref_errors", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XDEC_MEMVIEW(&__pyx_v_err_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_R_buf, 1);
__Pyx_XDECREF((PyObject *)__pyx_v_err);
__PYX_XDEC_MEMVIEW(&__pyx_v__err, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF((PyObject *)__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_270__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults71, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults71, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults71, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults71, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyArrayObject *__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_109ref_errors(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_6pyrost_3bin_6pyrost_109ref_errors = {"__pyx_fuse_1_1ref_errors", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_109ref_errors, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_16ref_errors};
static PyArrayObject *__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_109ref_errors(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_h;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
unsigned int __pyx_v_num_threads;
PyArrayObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("ref_errors (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_h,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults71 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults71, __pyx_self);
values[10] = __pyx_dynamic_args->__pyx_arg_loss;
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);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 1); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 2); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 3); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 4); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 5); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 6); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 7); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 8); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, 9); __PYX_ERR(0, 1229, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[10] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 11:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[11] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ref_errors") < 0)) __PYX_ERR(0, 1229, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 1229, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 1229, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 1229, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 1230, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 1230, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 1230, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1231, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1231, __pyx_L3_error)
__pyx_v_h = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_h == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1231, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1231, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[10]);
if (values[11]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[11]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1231, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("ref_errors", 0, 10, 12, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1229, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.ref_errors", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 1229, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 1229, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 1229, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 1230, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 1230, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 1230, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 1231, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_108ref_errors(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyArrayObject *__pyx_pf_6pyrost_3bin_6pyrost_108ref_errors(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h, double __pyx_v_sigma, PyObject *__pyx_v_loss, unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
CYTHON_UNUSED int __pyx_v_N;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_i;
int __pyx_v_j;
int __pyx_v_k;
int __pyx_v_t;
npy_intp *__pyx_v_shape;
__Pyx_memviewslice __pyx_v_err_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_R_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_v_err = 0;
__Pyx_memviewslice __pyx_v__err = { 0, 0, { 0 }, { 0 }, { 0 } };
__pyx_t_5numpy_float32_t __pyx_v_err_sum;
__pyx_t_5numpy_float32_t __pyx_v_R_sum;
PyArrayObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_1_1ref_errors", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_11, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_12, 1);
__Pyx_AddTraceback("pyrost.bin.pyrost.ref_errors", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XDEC_MEMVIEW(&__pyx_v_err_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_R_buf, 1);
__Pyx_XDECREF((PyObject *)__pyx_v_err);
__PYX_XDEC_MEMVIEW(&__pyx_v__err, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF((PyObject *)__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_GIVEREF(__pyx_n_u_Huber);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_Huber);
__Pyx_GIVEREF(__pyx_t_5);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5);
__pyx_t_5 = 0;
/* … */
__pyx_tuple__49 = PyTuple_Pack(28, __pyx_n_s_I_n, __pyx_n_s_W, __pyx_n_s_I0, __pyx_n_s_u, __pyx_n_s_di, __pyx_n_s_dj, __pyx_n_s_ds_y, __pyx_n_s_ds_x, __pyx_n_s_h, __pyx_n_s_sigma, __pyx_n_s_loss, __pyx_n_s_num_threads, __pyx_n_s_f, __pyx_n_s_type_num, __pyx_n_s_N, __pyx_n_s_Y0, __pyx_n_s_X0, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_k, __pyx_n_s_t, __pyx_n_s_shape, __pyx_n_s_err_buf, __pyx_n_s_R_buf, __pyx_n_s_err, __pyx_n_s_err_2, __pyx_n_s_err_sum, __pyx_n_s_R_sum); if (unlikely(!__pyx_tuple__49)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__49);
__Pyx_GIVEREF(__pyx_tuple__49);
__pyx_t_5 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_return, __pyx_n_u_ndarray) < 0) __PYX_ERR(0, 1229, __pyx_L1_error)
__pyx_t_2 = __pyx_FusedFunction_New(&__pyx_fuse_0_0__pyx_mdef_6pyrost_3bin_6pyrost_103ref_errors, 0, __pyx_n_s_ref_errors, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_2, sizeof(__pyx_defaults68), 1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults68, __pyx_t_2)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults68, __pyx_t_2)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_1);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_2, __pyx_pf_6pyrost_3bin_6pyrost_264__defaults__);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_4);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (PyDict_SetItem(__pyx_t_5, __pyx_kp_s_uint64_t_float64_t, __pyx_t_2) < 0) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_return, __pyx_n_u_ndarray) < 0) __PYX_ERR(0, 1229, __pyx_L1_error)
__pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_0_1__pyx_mdef_6pyrost_3bin_6pyrost_105ref_errors, 0, __pyx_n_s_ref_errors, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults69), 1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults69, __pyx_t_4)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults69, __pyx_t_4)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pyrost_3bin_6pyrost_266__defaults__);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_4, __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (PyDict_SetItem(__pyx_t_5, __pyx_kp_s_uint64_t_float32_t, __pyx_t_4) < 0) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_return, __pyx_n_u_ndarray) < 0) __PYX_ERR(0, 1229, __pyx_L1_error)
__pyx_t_2 = __pyx_FusedFunction_New(&__pyx_fuse_1_0__pyx_mdef_6pyrost_3bin_6pyrost_107ref_errors, 0, __pyx_n_s_ref_errors, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_2, sizeof(__pyx_defaults70), 1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults70, __pyx_t_2)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults70, __pyx_t_2)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_1);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_2, __pyx_pf_6pyrost_3bin_6pyrost_268__defaults__);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_4);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (PyDict_SetItem(__pyx_t_5, __pyx_kp_s_uint32_t_float64_t, __pyx_t_2) < 0) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_return, __pyx_n_u_ndarray) < 0) __PYX_ERR(0, 1229, __pyx_L1_error)
__pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_1_1__pyx_mdef_6pyrost_3bin_6pyrost_109ref_errors, 0, __pyx_n_s_ref_errors, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults71), 1)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults71, __pyx_t_4)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults71, __pyx_t_4)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pyrost_3bin_6pyrost_270__defaults__);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_4, __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (PyDict_SetItem(__pyx_t_5, __pyx_kp_s_uint32_t_float32_t, __pyx_t_4) < 0) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = __pyx_FusedFunction_New(&__pyx_mdef_6pyrost_3bin_6pyrost_17ref_errors, 0, __pyx_n_s_ref_errors, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
((__pyx_FusedFunctionObject *) __pyx_t_4)->__signatures__ = __pyx_t_5;
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_5 = 0;
if (PyDict_SetItem(__pyx_d, __pyx_n_s_ref_errors, __pyx_t_4) < 0) __PYX_ERR(0, 1229, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__50 = (PyObject*)__Pyx_PyCode_New(12, 0, 28, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__49, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pyrost_bin_pyrost_pyx, __pyx_n_s_ref_errors, 1229, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__50)) __PYX_ERR(0, 1229, __pyx_L1_error)
1230: float_t[:, :, ::1] u not None, float_t[::1] di not None, float_t[::1] dj not None,
+1231: double ds_y, double ds_x, double h, double sigma, str loss='Huber', unsigned num_threads=1) -> np.ndarray:
__pyx_t_5 = __Pyx_PyInt_From_long(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5);
1232: r"""Return the residuals for the reference image regression.
1233:
1234: Args:
1235: I_n (numpy.ndarray) : Measured intensity frames.
1236: W (numpy.ndarray) : Measured frames' whitefield.
1237: I0 (numpy.ndarray) : Reference image of the sample.
1238: u (numpy.ndarray) : The discrete geometrical mapping of the detector
1239: plane to the reference image.
1240: di (numpy.ndarray) : Sample's translations along the vertical
1241: detector axis in pixels.
1242: dj (numpy.ndarray): Sample's translations along the fast detector
1243: axis in pixels.
1244: ds_y (float) : Sampling interval of reference image in pixels along
1245: the vertical axis.
1246: ds_x (float) : Sampling interval of reference image in pixels along
1247: the horizontal axis.
1248: h (float) : Kernel bandwidth in pixels.
1249: sigma (float) : The standard deviation of `I_n`.
1250: loss (str) : Choose between the following loss functions:
1251:
1252: * 'Epsilon': Epsilon loss function (epsilon = 0.5)
1253: * 'Huber' : Huber loss function (k = 1.345)
1254: * 'L1' : L1 norm loss function.
1255: * 'L2' : L2 norm loss function.
1256:
1257: num_threads (int) : Number of threads.
1258:
1259: Returns:
1260: numpy.ndarray : Residuals array of the reference image regression.
1261:
1262: Notes:
1263: The pixel mapping `u` maps the intensity measurements from the
1264: detector plane to the reference plane as follows:
1265:
1266: .. math::
1267: i_{ref}[n, i, j] = u[0, i, j] + di[n], \; j_{ref}[n, i, j] = u[1, i, j] + dj[n]
1268:
1269: The error metric is given by:
1270:
1271: .. math::
1272:
1273: \varepsilon_{ref}[i, j] = \sum_{n, i^{\prime}, j^{\prime}}
1274: K[i - i_{ref}[n, i^{\prime}, j^{\prime}],
1275: j - j_{ref}[n, i^{\prime}, j^{\prime}], h] \;
1276: f\left( \frac{I_n[n, i^{\prime}, j^{\prime}] -
1277: W[i^{\prime}, j^{\prime}] I_{ref}[i, j]}{\sigma} \right)
1278:
1279: where :math:`f(x)` is L1 norm, L2 norm or Huber loss function
1280: and :math:`K[i, j, h] = \frac{1}{\sqrt{2 \pi}} \exp(-\frac{i^2 + j^2}{h})`
1281: is the Gaussian kernel.
1282:
1283: See Also:
1284: :func:`pyrost.bin.KR_reference` : Description of the reference image
1285: estimator.
1286: """
+1287: if ds_y <= 0.0 or ds_x <= 0.0:
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
+1288: raise ValueError('Sampling intervals must be positive')
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 1288, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 1288, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 1288, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 1288, __pyx_L1_error)
1289:
+1290: cdef loss_func f = choose_loss(loss)
__pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss); /* … */ __pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss); /* … */ __pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss); /* … */ __pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss);
1291:
+1292: cdef int type_num = np.PyArray_TYPE(W.base)
__pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1292, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1292, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1292, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1292, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1293: cdef int N = I_n.shape[0], Y0 = I0.shape[0], X0 = I0.shape[1]
__pyx_v_N = (__pyx_v_I_n.shape[0]); __pyx_v_Y0 = (__pyx_v_I0.shape[0]); __pyx_v_X0 = (__pyx_v_I0.shape[1]); /* … */ __pyx_v_N = (__pyx_v_I_n.shape[0]); __pyx_v_Y0 = (__pyx_v_I0.shape[0]); __pyx_v_X0 = (__pyx_v_I0.shape[1]); /* … */ __pyx_v_N = (__pyx_v_I_n.shape[0]); __pyx_v_Y0 = (__pyx_v_I0.shape[0]); __pyx_v_X0 = (__pyx_v_I0.shape[1]); /* … */ __pyx_v_N = (__pyx_v_I_n.shape[0]); __pyx_v_Y0 = (__pyx_v_I0.shape[0]); __pyx_v_X0 = (__pyx_v_I0.shape[1]);
1294: cdef int i, j, k, t
1295:
+1296: cdef np.npy_intp *shape = [num_threads, Y0, X0]
__pyx_t_5[0] = __pyx_v_num_threads; __pyx_t_5[1] = __pyx_v_Y0; __pyx_t_5[2] = __pyx_v_X0; __pyx_v_shape = __pyx_t_5; /* … */ __pyx_t_5[0] = __pyx_v_num_threads; __pyx_t_5[1] = __pyx_v_Y0; __pyx_t_5[2] = __pyx_v_X0; __pyx_v_shape = __pyx_t_5; /* … */ __pyx_t_5[0] = __pyx_v_num_threads; __pyx_t_5[1] = __pyx_v_Y0; __pyx_t_5[2] = __pyx_v_X0; __pyx_v_shape = __pyx_t_5; /* … */ __pyx_t_5[0] = __pyx_v_num_threads; __pyx_t_5[1] = __pyx_v_Y0; __pyx_t_5[2] = __pyx_v_X0; __pyx_v_shape = __pyx_t_5;
+1297: cdef float_t[:, :, ::1] err_buf = np.PyArray_ZEROS(3, shape, type_num, 0)
__pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_err_buf = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_err_buf = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_err_buf = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_err_buf = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL;
+1298: cdef float_t[:, :, ::1] R_buf = np.PyArray_ZEROS(3, shape, type_num, 0)
__pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1298, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_R_buf = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1298, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_R_buf = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1298, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_R_buf = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1298, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_R_buf = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL;
+1299: cdef np.ndarray err = np.PyArray_SimpleNew(2, shape + 1, type_num)
__pyx_t_4 = PyArray_SimpleNew(2, (__pyx_v_shape + 1), __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1299, __pyx_L1_error) __pyx_v_err = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_SimpleNew(2, (__pyx_v_shape + 1), __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1299, __pyx_L1_error) __pyx_v_err = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_SimpleNew(2, (__pyx_v_shape + 1), __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1299, __pyx_L1_error) __pyx_v_err = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyArray_SimpleNew(2, (__pyx_v_shape + 1), __pyx_v_type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1299, __pyx_L1_error) __pyx_v_err = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0;
1300:
+1301: for i in prange(N, schedule='guided', num_threads=num_threads, nogil=True):
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_7 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_9 = (__pyx_t_7 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_9 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_7 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_9 = (__pyx_t_7 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_9 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_9; __pyx_t_8++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_8);
/* Initialize private variables to invalid values */
__pyx_v_t = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_7 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_9 = (__pyx_t_7 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_9 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_7 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_9 = (__pyx_t_7 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_9 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_9; __pyx_t_8++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_8);
/* Initialize private variables to invalid values */
__pyx_v_t = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_7 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_9 = (__pyx_t_7 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_9 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_7 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_9 = (__pyx_t_7 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_9 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_9; __pyx_t_8++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_8);
/* Initialize private variables to invalid values */
__pyx_v_t = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_7 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_9 = (__pyx_t_7 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_9 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_7 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_9 = (__pyx_t_7 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_9 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_9; __pyx_t_8++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_8);
/* Initialize private variables to invalid values */
__pyx_v_t = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
+1302: t = openmp.omp_get_thread_num()
__pyx_v_t = omp_get_thread_num();
/* … */
__pyx_v_t = omp_get_thread_num();
/* … */
__pyx_v_t = omp_get_thread_num();
/* … */
__pyx_v_t = omp_get_thread_num();
+1303: FVU_frame(err_buf[t], R_buf[t], I0, I_n[i], W, u, di[i], dj[i],
__pyx_t_10.data = __pyx_v_err_buf.data;
__pyx_t_10.memview = __pyx_v_err_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_10, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_err_buf.strides[0];
__pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_10.shape[0] = __pyx_v_err_buf.shape[1];
__pyx_t_10.strides[0] = __pyx_v_err_buf.strides[1];
__pyx_t_10.suboffsets[0] = -1;
__pyx_t_10.shape[1] = __pyx_v_err_buf.shape[2];
__pyx_t_10.strides[1] = __pyx_v_err_buf.strides[2];
__pyx_t_10.suboffsets[1] = -1;
__pyx_t_11.data = __pyx_v_R_buf.data;
__pyx_t_11.memview = __pyx_v_R_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_11, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_R_buf.strides[0];
__pyx_t_11.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_11.shape[0] = __pyx_v_R_buf.shape[1];
__pyx_t_11.strides[0] = __pyx_v_R_buf.strides[1];
__pyx_t_11.suboffsets[0] = -1;
__pyx_t_11.shape[1] = __pyx_v_R_buf.shape[2];
__pyx_t_11.strides[1] = __pyx_v_R_buf.strides[2];
__pyx_t_11.suboffsets[1] = -1;
__pyx_t_12.data = __pyx_v_I_n.data;
__pyx_t_12.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_12, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_12.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_12.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_12.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_12.suboffsets[0] = -1;
__pyx_t_12.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_12.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_12.suboffsets[1] = -1;
__pyx_t_13 = __pyx_v_i;
__pyx_t_14 = __pyx_v_i;
/* … */
__pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_FVU_frame(__pyx_t_10, __pyx_t_11, __pyx_v_I0, __pyx_t_12, __pyx_v_W, __pyx_v_u, (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_di.data) + __pyx_t_13)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dj.data) + __pyx_t_14)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h, __pyx_v_sigma, __pyx_v_f);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 0);
__pyx_t_10.memview = NULL;
__pyx_t_10.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_11, 0);
__pyx_t_11.memview = NULL;
__pyx_t_11.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_12, 0);
__pyx_t_12.memview = NULL;
__pyx_t_12.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_10.data = __pyx_v_err_buf.data;
__pyx_t_10.memview = __pyx_v_err_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_10, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_err_buf.strides[0];
__pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_10.shape[0] = __pyx_v_err_buf.shape[1];
__pyx_t_10.strides[0] = __pyx_v_err_buf.strides[1];
__pyx_t_10.suboffsets[0] = -1;
__pyx_t_10.shape[1] = __pyx_v_err_buf.shape[2];
__pyx_t_10.strides[1] = __pyx_v_err_buf.strides[2];
__pyx_t_10.suboffsets[1] = -1;
__pyx_t_11.data = __pyx_v_R_buf.data;
__pyx_t_11.memview = __pyx_v_R_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_11, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_R_buf.strides[0];
__pyx_t_11.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_11.shape[0] = __pyx_v_R_buf.shape[1];
__pyx_t_11.strides[0] = __pyx_v_R_buf.strides[1];
__pyx_t_11.suboffsets[0] = -1;
__pyx_t_11.shape[1] = __pyx_v_R_buf.shape[2];
__pyx_t_11.strides[1] = __pyx_v_R_buf.strides[2];
__pyx_t_11.suboffsets[1] = -1;
__pyx_t_12.data = __pyx_v_I_n.data;
__pyx_t_12.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_12, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_12.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_12.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_12.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_12.suboffsets[0] = -1;
__pyx_t_12.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_12.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_12.suboffsets[1] = -1;
__pyx_t_13 = __pyx_v_i;
__pyx_t_14 = __pyx_v_i;
/* … */
__pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_FVU_frame(__pyx_t_10, __pyx_t_11, __pyx_v_I0, __pyx_t_12, __pyx_v_W, __pyx_v_u, (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_di.data) + __pyx_t_13)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dj.data) + __pyx_t_14)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h, __pyx_v_sigma, __pyx_v_f);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 0);
__pyx_t_10.memview = NULL;
__pyx_t_10.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_11, 0);
__pyx_t_11.memview = NULL;
__pyx_t_11.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_12, 0);
__pyx_t_12.memview = NULL;
__pyx_t_12.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_10.data = __pyx_v_err_buf.data;
__pyx_t_10.memview = __pyx_v_err_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_10, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_err_buf.strides[0];
__pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_10.shape[0] = __pyx_v_err_buf.shape[1];
__pyx_t_10.strides[0] = __pyx_v_err_buf.strides[1];
__pyx_t_10.suboffsets[0] = -1;
__pyx_t_10.shape[1] = __pyx_v_err_buf.shape[2];
__pyx_t_10.strides[1] = __pyx_v_err_buf.strides[2];
__pyx_t_10.suboffsets[1] = -1;
__pyx_t_11.data = __pyx_v_R_buf.data;
__pyx_t_11.memview = __pyx_v_R_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_11, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_R_buf.strides[0];
__pyx_t_11.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_11.shape[0] = __pyx_v_R_buf.shape[1];
__pyx_t_11.strides[0] = __pyx_v_R_buf.strides[1];
__pyx_t_11.suboffsets[0] = -1;
__pyx_t_11.shape[1] = __pyx_v_R_buf.shape[2];
__pyx_t_11.strides[1] = __pyx_v_R_buf.strides[2];
__pyx_t_11.suboffsets[1] = -1;
__pyx_t_12.data = __pyx_v_I_n.data;
__pyx_t_12.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_12, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_12.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_12.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_12.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_12.suboffsets[0] = -1;
__pyx_t_12.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_12.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_12.suboffsets[1] = -1;
__pyx_t_13 = __pyx_v_i;
__pyx_t_14 = __pyx_v_i;
/* … */
__pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_FVU_frame(__pyx_t_10, __pyx_t_11, __pyx_v_I0, __pyx_t_12, __pyx_v_W, __pyx_v_u, (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_di.data) + __pyx_t_13)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dj.data) + __pyx_t_14)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h, __pyx_v_sigma, __pyx_v_f);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 0);
__pyx_t_10.memview = NULL;
__pyx_t_10.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_11, 0);
__pyx_t_11.memview = NULL;
__pyx_t_11.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_12, 0);
__pyx_t_12.memview = NULL;
__pyx_t_12.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_10.data = __pyx_v_err_buf.data;
__pyx_t_10.memview = __pyx_v_err_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_10, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_err_buf.strides[0];
__pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_10.shape[0] = __pyx_v_err_buf.shape[1];
__pyx_t_10.strides[0] = __pyx_v_err_buf.strides[1];
__pyx_t_10.suboffsets[0] = -1;
__pyx_t_10.shape[1] = __pyx_v_err_buf.shape[2];
__pyx_t_10.strides[1] = __pyx_v_err_buf.strides[2];
__pyx_t_10.suboffsets[1] = -1;
__pyx_t_11.data = __pyx_v_R_buf.data;
__pyx_t_11.memview = __pyx_v_R_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_11, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_R_buf.strides[0];
__pyx_t_11.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_11.shape[0] = __pyx_v_R_buf.shape[1];
__pyx_t_11.strides[0] = __pyx_v_R_buf.strides[1];
__pyx_t_11.suboffsets[0] = -1;
__pyx_t_11.shape[1] = __pyx_v_R_buf.shape[2];
__pyx_t_11.strides[1] = __pyx_v_R_buf.strides[2];
__pyx_t_11.suboffsets[1] = -1;
__pyx_t_12.data = __pyx_v_I_n.data;
__pyx_t_12.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_12, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_12.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_12.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_12.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_12.suboffsets[0] = -1;
__pyx_t_12.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_12.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_12.suboffsets[1] = -1;
__pyx_t_13 = __pyx_v_i;
__pyx_t_14 = __pyx_v_i;
/* … */
__pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_FVU_frame(__pyx_t_10, __pyx_t_11, __pyx_v_I0, __pyx_t_12, __pyx_v_W, __pyx_v_u, (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_di.data) + __pyx_t_13)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dj.data) + __pyx_t_14)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h, __pyx_v_sigma, __pyx_v_f);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 0);
__pyx_t_10.memview = NULL;
__pyx_t_10.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_11, 0);
__pyx_t_11.memview = NULL;
__pyx_t_11.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_12, 0);
__pyx_t_12.memview = NULL;
__pyx_t_12.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
1304: ds_y, ds_x, h, sigma, f)
1305:
+1306: cdef float_t[:, ::1] _err = err
__pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(((PyObject *)__pyx_v_err), PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 1306, __pyx_L1_error) __pyx_v__err = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; /* … */ __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(((PyObject *)__pyx_v_err), PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 1306, __pyx_L1_error) __pyx_v__err = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; /* … */ __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(((PyObject *)__pyx_v_err), PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 1306, __pyx_L1_error) __pyx_v__err = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; /* … */ __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(((PyObject *)__pyx_v_err), PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 1306, __pyx_L1_error) __pyx_v__err = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL;
1307: cdef float_t err_sum, R_sum
+1308: for k in prange(X0, schedule='guided', num_threads=num_threads, nogil=True):
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_9 = __pyx_v_X0;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_7 = (__pyx_t_9 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_7 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_R_sum) lastprivate(__pyx_v_err_sum) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_9 = __pyx_v_X0;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_7 = (__pyx_t_9 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_7 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_R_sum) lastprivate(__pyx_v_err_sum) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_8);
/* Initialize private variables to invalid values */
__pyx_v_R_sum = ((__pyx_t_5numpy_float64_t)__PYX_NAN());
__pyx_v_err_sum = ((__pyx_t_5numpy_float64_t)__PYX_NAN());
__pyx_v_i = ((int)0xbad0bad0);
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L17;
}
__pyx_L17:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_9 = __pyx_v_X0;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_7 = (__pyx_t_9 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_7 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_R_sum) lastprivate(__pyx_v_err_sum) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_9 = __pyx_v_X0;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_7 = (__pyx_t_9 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_7 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_R_sum) lastprivate(__pyx_v_err_sum) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_8);
/* Initialize private variables to invalid values */
__pyx_v_R_sum = ((__pyx_t_5numpy_float32_t)__PYX_NAN());
__pyx_v_err_sum = ((__pyx_t_5numpy_float32_t)__PYX_NAN());
__pyx_v_i = ((int)0xbad0bad0);
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L17;
}
__pyx_L17:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_9 = __pyx_v_X0;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_7 = (__pyx_t_9 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_7 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_R_sum) lastprivate(__pyx_v_err_sum) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_9 = __pyx_v_X0;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_7 = (__pyx_t_9 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_7 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_R_sum) lastprivate(__pyx_v_err_sum) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_8);
/* Initialize private variables to invalid values */
__pyx_v_R_sum = ((__pyx_t_5numpy_float64_t)__PYX_NAN());
__pyx_v_err_sum = ((__pyx_t_5numpy_float64_t)__PYX_NAN());
__pyx_v_i = ((int)0xbad0bad0);
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L17;
}
__pyx_L17:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_9 = __pyx_v_X0;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_7 = (__pyx_t_9 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_7 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_R_sum) lastprivate(__pyx_v_err_sum) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_9 = __pyx_v_X0;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_7 = (__pyx_t_9 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_7 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_R_sum) lastprivate(__pyx_v_err_sum) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_8);
/* Initialize private variables to invalid values */
__pyx_v_R_sum = ((__pyx_t_5numpy_float32_t)__PYX_NAN());
__pyx_v_err_sum = ((__pyx_t_5numpy_float32_t)__PYX_NAN());
__pyx_v_i = ((int)0xbad0bad0);
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L17;
}
__pyx_L17:;
}
}
+1309: for j in range(Y0):
__pyx_t_15 = __pyx_v_Y0;
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_j = __pyx_t_17;
/* … */
__pyx_t_15 = __pyx_v_Y0;
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_j = __pyx_t_17;
/* … */
__pyx_t_15 = __pyx_v_Y0;
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_j = __pyx_t_17;
/* … */
__pyx_t_15 = __pyx_v_Y0;
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_j = __pyx_t_17;
+1310: err_sum = 0.0; R_sum = 0.0
__pyx_v_err_sum = 0.0;
__pyx_v_R_sum = 0.0;
/* … */
__pyx_v_err_sum = 0.0;
__pyx_v_R_sum = 0.0;
/* … */
__pyx_v_err_sum = 0.0;
__pyx_v_R_sum = 0.0;
/* … */
__pyx_v_err_sum = 0.0;
__pyx_v_R_sum = 0.0;
+1311: for i in range(<int>num_threads):
__pyx_t_18 = ((int)__pyx_v_num_threads);
__pyx_t_19 = __pyx_t_18;
for (__pyx_t_20 = 0; __pyx_t_20 < __pyx_t_19; __pyx_t_20+=1) {
__pyx_v_i = __pyx_t_20;
/* … */
__pyx_t_18 = ((int)__pyx_v_num_threads);
__pyx_t_19 = __pyx_t_18;
for (__pyx_t_20 = 0; __pyx_t_20 < __pyx_t_19; __pyx_t_20+=1) {
__pyx_v_i = __pyx_t_20;
/* … */
__pyx_t_18 = ((int)__pyx_v_num_threads);
__pyx_t_19 = __pyx_t_18;
for (__pyx_t_20 = 0; __pyx_t_20 < __pyx_t_19; __pyx_t_20+=1) {
__pyx_v_i = __pyx_t_20;
/* … */
__pyx_t_18 = ((int)__pyx_v_num_threads);
__pyx_t_19 = __pyx_t_18;
for (__pyx_t_20 = 0; __pyx_t_20 < __pyx_t_19; __pyx_t_20+=1) {
__pyx_v_i = __pyx_t_20;
+1312: err_sum = err_sum + err_buf[i, j, k]
__pyx_t_14 = __pyx_v_i;
__pyx_t_13 = __pyx_v_j;
__pyx_t_21 = __pyx_v_k;
__pyx_v_err_sum = (__pyx_v_err_sum + (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_err_buf.data + __pyx_t_14 * __pyx_v_err_buf.strides[0]) ) + __pyx_t_13 * __pyx_v_err_buf.strides[1]) )) + __pyx_t_21)) ))));
/* … */
__pyx_t_14 = __pyx_v_i;
__pyx_t_13 = __pyx_v_j;
__pyx_t_21 = __pyx_v_k;
__pyx_v_err_sum = (__pyx_v_err_sum + (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_err_buf.data + __pyx_t_14 * __pyx_v_err_buf.strides[0]) ) + __pyx_t_13 * __pyx_v_err_buf.strides[1]) )) + __pyx_t_21)) ))));
/* … */
__pyx_t_14 = __pyx_v_i;
__pyx_t_13 = __pyx_v_j;
__pyx_t_21 = __pyx_v_k;
__pyx_v_err_sum = (__pyx_v_err_sum + (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_err_buf.data + __pyx_t_14 * __pyx_v_err_buf.strides[0]) ) + __pyx_t_13 * __pyx_v_err_buf.strides[1]) )) + __pyx_t_21)) ))));
/* … */
__pyx_t_14 = __pyx_v_i;
__pyx_t_13 = __pyx_v_j;
__pyx_t_21 = __pyx_v_k;
__pyx_v_err_sum = (__pyx_v_err_sum + (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_err_buf.data + __pyx_t_14 * __pyx_v_err_buf.strides[0]) ) + __pyx_t_13 * __pyx_v_err_buf.strides[1]) )) + __pyx_t_21)) ))));
+1313: R_sum = R_sum + R_buf[i, j, k]
__pyx_t_21 = __pyx_v_i;
__pyx_t_13 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_v_R_sum = (__pyx_v_R_sum + (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_R_buf.data + __pyx_t_21 * __pyx_v_R_buf.strides[0]) ) + __pyx_t_13 * __pyx_v_R_buf.strides[1]) )) + __pyx_t_14)) ))));
}
/* … */
__pyx_t_21 = __pyx_v_i;
__pyx_t_13 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_v_R_sum = (__pyx_v_R_sum + (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_R_buf.data + __pyx_t_21 * __pyx_v_R_buf.strides[0]) ) + __pyx_t_13 * __pyx_v_R_buf.strides[1]) )) + __pyx_t_14)) ))));
}
/* … */
__pyx_t_21 = __pyx_v_i;
__pyx_t_13 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_v_R_sum = (__pyx_v_R_sum + (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_R_buf.data + __pyx_t_21 * __pyx_v_R_buf.strides[0]) ) + __pyx_t_13 * __pyx_v_R_buf.strides[1]) )) + __pyx_t_14)) ))));
}
/* … */
__pyx_t_21 = __pyx_v_i;
__pyx_t_13 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_v_R_sum = (__pyx_v_R_sum + (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_R_buf.data + __pyx_t_21 * __pyx_v_R_buf.strides[0]) ) + __pyx_t_13 * __pyx_v_R_buf.strides[1]) )) + __pyx_t_14)) ))));
}
1314:
+1315: _err[j, k] = err_sum / R_sum if R_sum > 0.0 else 0.0
if (((__pyx_v_R_sum > 0.0) != 0)) {
__pyx_t_22 = (__pyx_v_err_sum / __pyx_v_R_sum);
} else {
__pyx_t_22 = 0.0;
}
__pyx_t_14 = __pyx_v_j;
__pyx_t_13 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v__err.data + __pyx_t_14 * __pyx_v__err.strides[0]) )) + __pyx_t_13)) )) = __pyx_t_22;
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
if (((__pyx_v_R_sum > 0.0) != 0)) {
__pyx_t_22 = (__pyx_v_err_sum / __pyx_v_R_sum);
} else {
__pyx_t_22 = 0.0;
}
__pyx_t_14 = __pyx_v_j;
__pyx_t_13 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v__err.data + __pyx_t_14 * __pyx_v__err.strides[0]) )) + __pyx_t_13)) )) = __pyx_t_22;
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
if (((__pyx_v_R_sum > 0.0) != 0)) {
__pyx_t_22 = (__pyx_v_err_sum / __pyx_v_R_sum);
} else {
__pyx_t_22 = 0.0;
}
__pyx_t_14 = __pyx_v_j;
__pyx_t_13 = __pyx_v_k;
*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v__err.data + __pyx_t_14 * __pyx_v__err.strides[0]) )) + __pyx_t_13)) )) = __pyx_t_22;
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
if (((__pyx_v_R_sum > 0.0) != 0)) {
__pyx_t_22 = (__pyx_v_err_sum / __pyx_v_R_sum);
} else {
__pyx_t_22 = 0.0;
}
__pyx_t_14 = __pyx_v_j;
__pyx_t_13 = __pyx_v_k;
*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v__err.data + __pyx_t_14 * __pyx_v__err.strides[0]) )) + __pyx_t_13)) )) = __pyx_t_22;
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
1316:
+1317: return err
__Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_err)); __pyx_r = __pyx_v_err; goto __pyx_L0; /* … */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_err)); __pyx_r = __pyx_v_err; goto __pyx_L0; /* … */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_err)); __pyx_r = __pyx_v_err; goto __pyx_L0; /* … */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_err)); __pyx_r = __pyx_v_err; goto __pyx_L0;
1318:
+1319: def ref_total_error(uint_t[:, :, ::1] I_n not None, float_t[:, ::1] W not None, float_t[:, ::1] I0 not None,
/* Python wrapper */
static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_19ref_total_error(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6pyrost_3bin_6pyrost_18ref_total_error[] = "Return the mean residual for the reference image regression.\n\n Args:\n I_n (numpy.ndarray) : Measured intensity frames.\n W (numpy.ndarray) : Measured frames' whitefield.\n I0 (numpy.ndarray) : Reference image of the sample.\n u (numpy.ndarray) : The discrete geometrical mapping of the detector\n plane to the reference image.\n di (numpy.ndarray) : Sample's translations along the vertical\n detector axis in pixels.\n dj (numpy.ndarray): Sample's translations along the fast detector\n axis in pixels.\n ds_y (float) : Sampling interval of reference image in pixels along\n the vertical axis.\n ds_x (float) : Sampling interval of reference image in pixels along\n the horizontal axis.\n h (float) : Kernel bandwidth in pixels.\n sigma (float) : The standard deviation of `I_n`.\n loss (str) : Choose between the following loss functions:\n\n * 'Epsilon': Epsilon loss function (epsilon = 0.5)\n * 'Huber' : Huber loss function (k = 1.345)\n * 'L1' : L1 norm loss function.\n * 'L2' : L2 norm loss function.\n\n num_threads (int) : Number of threads.\n\n Returns:\n float : Mean residual value.\n\n Notes:\n The pixel mapping `u` maps the intensity measurements from the\n detector plane to the reference plane as follows:\n\n .. math::\n i_{ref}[n, i, j] = u[0, i, j] + di[n], \\; j_{ref}[n, i, j] = u[1, i, j] + dj[n]\n\n The error metric is given by:\n\n .. math::\n\n \\varepsilon_{ref}[i, j] = \\sum_{n, i^{\\prime}, j^{\\prime}}\n K[i - i_{ref}[n, i^{\\prime}, j^{\\prime}], \n j - j_{ref}[n, i^{\\prime}, j^{\\prime}], h] \\;\n f\\left( \\frac{I_n[n, i^{\\prime}, j^{\\prime}] -\n W[i^{\\prime}, j^{\\prime}] I_{ref}[i, j]}{\\sigma} \\right)\n\n where :math:`f(x)` is L1 norm, L2 ""norm or Huber loss function\n and :math:`K[i, j, h] = \\frac{1}{\\sqrt{2 \\pi}} \\exp(-\\frac{i^2 + j^2}{h})`\n is the Gaussian kernel.\n\n See Also:\n :func:`pyrost.bin.KR_reference` : Description of the reference image\n estimator.\n ";
static PyMethodDef __pyx_mdef_6pyrost_3bin_6pyrost_19ref_total_error = {"ref_total_error", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pyrost_3bin_6pyrost_19ref_total_error, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_18ref_total_error};
static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_19ref_total_error(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_signatures = 0;
PyObject *__pyx_v_args = 0;
PyObject *__pyx_v_kwargs = 0;
CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
PyObject* values[4] = {0,0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 1319, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 1319, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
}
__pyx_v_signatures = values[0];
__pyx_v_args = values[1];
__pyx_v_kwargs = values[2];
__pyx_v_defaults = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1319, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_18ref_total_error(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_18ref_total_error(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
PyObject *__pyx_v_dest_sig = NULL;
Py_ssize_t __pyx_v_i;
PyTypeObject *__pyx_v_ndarray = 0;
__Pyx_memviewslice __pyx_v_memslice;
Py_ssize_t __pyx_v_itemsize;
int __pyx_v_dtype_signed;
char __pyx_v_kind;
int __pyx_v____pyx_uint64_t_is_signed;
int __pyx_v____pyx_uint32_t_is_signed;
PyObject *__pyx_v_arg = NULL;
PyObject *__pyx_v_dtype = NULL;
PyObject *__pyx_v_arg_base = NULL;
PyObject *__pyx_v_candidates = NULL;
PyObject *__pyx_v_sig = NULL;
int __pyx_v_match_found;
PyObject *__pyx_v_src_sig = NULL;
PyObject *__pyx_v_dst_type = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("ref_total_error", 0);
__Pyx_INCREF(__pyx_v_kwargs);
__pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{ Py_ssize_t __pyx_temp;
for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
}
}
__pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_3 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1319, __pyx_L1_error)
__pyx_t_3 = ((!__pyx_t_4) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L4_bool_binop_done:;
if (__pyx_t_2) {
__Pyx_INCREF(Py_None);
__Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
}
__pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_v_itemsize = -1L;
__pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
__pyx_v____pyx_uint32_t_is_signed = (!((((__pyx_t_5numpy_uint32_t)-1L) > 0) != 0));
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 1319, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1319, __pyx_L1_error)
__pyx_t_2 = ((0 < __pyx_t_5) != 0);
if (__pyx_t_2) {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1319, __pyx_L1_error)
}
__pyx_t_1 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 0);
__Pyx_INCREF(__pyx_t_1);
__pyx_v_arg = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L6;
}
__pyx_t_3 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L7_bool_binop_done;
}
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1319, __pyx_L1_error)
}
__pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_I_n, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1319, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_4 != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L7_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1319, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_I_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_arg = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L6;
}
/*else*/ {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 1319, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1319, __pyx_L1_error)
__pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_INCREF(__pyx_int_10);
__Pyx_GIVEREF(__pyx_int_10);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_10);
__Pyx_INCREF(__pyx_n_s_s);
__Pyx_GIVEREF(__pyx_n_s_s);
PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_Raise(__pyx_t_6, 0, 0, 0);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__PYX_ERR(0, 1319, __pyx_L1_error)
}
__pyx_L6:;
while (1) {
__pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_dtype = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L12;
}
__pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_arg_base = __pyx_t_6;
__pyx_t_6 = 0;
__pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_dtype = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L13;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__pyx_v_dtype = Py_None;
}
__pyx_L13:;
goto __pyx_L12;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__pyx_v_dtype = Py_None;
}
__pyx_L12:;
__pyx_v_itemsize = -1L;
__pyx_t_2 = (__pyx_v_dtype != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_itemsize = __pyx_t_5;
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_kind = __pyx_t_7;
__pyx_v_dtype_signed = (__pyx_v_kind == 'i');
switch (__pyx_v_kind) {
case 'i':
case 'u':
__pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L16_bool_binop_done;
}
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L16_bool_binop_done;
}
__pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L16_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1319, __pyx_L1_error)
goto __pyx_L10_break;
}
__pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint32_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L20_bool_binop_done;
}
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L20_bool_binop_done;
}
__pyx_t_2 = ((!((__pyx_v____pyx_uint32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L20_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1319, __pyx_L1_error)
goto __pyx_L10_break;
}
break;
case 'f':
break;
case 'c':
break;
case 'O':
break;
default: break;
}
}
}
__pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L24_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L24_bool_binop_done:;
if (__pyx_t_3) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_3 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_3) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1319, __pyx_L1_error)
goto __pyx_L10_break;
}
/*else*/ {
PyErr_Clear();
}
}
__pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L28_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint32_t))) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L28_bool_binop_done:;
if (__pyx_t_3) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_3 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_3) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1319, __pyx_L1_error)
goto __pyx_L10_break;
}
/*else*/ {
PyErr_Clear();
}
}
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1319, __pyx_L1_error)
goto __pyx_L10_break;
}
__pyx_L10_break:;
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 1319, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1319, __pyx_L1_error)
__pyx_t_3 = ((1 < __pyx_t_5) != 0);
if (__pyx_t_3) {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1319, __pyx_L1_error)
}
__pyx_t_6 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 1);
__Pyx_INCREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
__pyx_t_6 = 0;
goto __pyx_L31;
}
__pyx_t_2 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_2 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_3 = __pyx_t_4;
goto __pyx_L32_bool_binop_done;
}
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1319, __pyx_L1_error)
}
__pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_W, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1319, __pyx_L1_error)
__pyx_t_2 = (__pyx_t_4 != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L32_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1319, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_W); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
__pyx_t_6 = 0;
goto __pyx_L31;
}
/*else*/ {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 1319, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1319, __pyx_L1_error)
__pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_int_10);
__Pyx_GIVEREF(__pyx_int_10);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_10);
__Pyx_INCREF(__pyx_n_s_s);
__Pyx_GIVEREF(__pyx_n_s_s);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 1319, __pyx_L1_error)
}
__pyx_L31:;
while (1) {
__pyx_t_3 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
__pyx_t_1 = 0;
goto __pyx_L37;
}
__pyx_t_3 = __pyx_memoryview_check(__pyx_v_arg);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_arg_base, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
__pyx_t_1 = 0;
goto __pyx_L38;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
}
__pyx_L38:;
goto __pyx_L37;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
}
__pyx_L37:;
__pyx_v_itemsize = -1L;
__pyx_t_3 = (__pyx_v_dtype != Py_None);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_itemsize = __pyx_t_5;
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_1); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_kind = __pyx_t_7;
__pyx_v_dtype_signed = (__pyx_v_kind == 'i');
switch (__pyx_v_kind) {
case 'i':
case 'u':
break;
case 'f':
__pyx_t_3 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L41_bool_binop_done;
}
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 2) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L41_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1319, __pyx_L1_error)
goto __pyx_L35_break;
}
__pyx_t_3 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L44_bool_binop_done;
}
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 2) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L44_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1319, __pyx_L1_error)
goto __pyx_L35_break;
}
break;
case 'c':
break;
case 'O':
break;
default: break;
}
}
}
__pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L47_bool_binop_done;
}
__pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L47_bool_binop_done:;
if (__pyx_t_2) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_2 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_2) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1319, __pyx_L1_error)
goto __pyx_L35_break;
}
/*else*/ {
PyErr_Clear();
}
}
__pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L51_bool_binop_done;
}
__pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L51_bool_binop_done:;
if (__pyx_t_2) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_2 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_2) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1319, __pyx_L1_error)
goto __pyx_L35_break;
}
/*else*/ {
PyErr_Clear();
}
}
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1319, __pyx_L1_error)
goto __pyx_L35_break;
}
__pyx_L35_break:;
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_candidates = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_5 = 0;
if (unlikely(__pyx_v_signatures == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1319, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_9, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_10);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_v_match_found = 0;
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_14 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
__pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
if (likely(__pyx_t_14)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
__Pyx_INCREF(__pyx_t_14);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_13, function);
}
}
__pyx_t_12 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2);
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
__pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
if (likely(__pyx_t_12)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
__Pyx_INCREF(__pyx_t_12);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_13, function);
}
}
__pyx_t_6 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__3);
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_15 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1319, __pyx_L1_error)
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_i = __pyx_t_17;
__pyx_t_6 = PyList_GET_ITEM(__pyx_v_dest_sig, __pyx_v_i);
__Pyx_INCREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_2 = (__pyx_v_dst_type != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_13 = PyObject_RichCompare(__pyx_t_6, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
if (__pyx_t_3) {
__pyx_v_match_found = 1;
goto __pyx_L59;
}
/*else*/ {
__pyx_v_match_found = 0;
goto __pyx_L57_break;
}
__pyx_L59:;
}
}
__pyx_L57_break:;
__pyx_t_3 = (__pyx_v_match_found != 0);
if (__pyx_t_3) {
__pyx_t_18 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 1319, __pyx_L1_error)
}
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
__pyx_t_2 = ((!__pyx_t_3) != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 1319, __pyx_L1_error)
}
__pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1319, __pyx_L1_error)
__pyx_t_2 = ((__pyx_t_9 > 1) != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 1319, __pyx_L1_error)
}
/*else*/ {
__Pyx_XDECREF(__pyx_r);
if (unlikely(__pyx_v_signatures == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1319, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), PyList_GET_ITEM(__pyx_v_candidates, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_AddTraceback("pyrost.bin.pyrost.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_dest_sig);
__Pyx_XDECREF(__pyx_v_ndarray);
__Pyx_XDECREF(__pyx_v_arg);
__Pyx_XDECREF(__pyx_v_dtype);
__Pyx_XDECREF(__pyx_v_arg_base);
__Pyx_XDECREF(__pyx_v_candidates);
__Pyx_XDECREF(__pyx_v_sig);
__Pyx_XDECREF(__pyx_v_src_sig);
__Pyx_XDECREF(__pyx_v_dst_type);
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_280__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults76, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults76, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults76, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults76, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_113ref_total_error(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_6pyrost_3bin_6pyrost_113ref_total_error = {"__pyx_fuse_0_0ref_total_error", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_113ref_total_error, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_18ref_total_error};
static PyObject *__pyx_fuse_0_0__pyx_pw_6pyrost_3bin_6pyrost_113ref_total_error(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_h;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("ref_total_error (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_h,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults76 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults76, __pyx_self);
values[10] = __pyx_dynamic_args->__pyx_arg_loss;
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);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 1); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 2); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 3); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 4); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 5); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 6); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 7); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 8); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 9); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[10] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 11:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[11] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ref_total_error") < 0)) __PYX_ERR(0, 1319, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 1319, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 1319, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 1319, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 1320, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 1320, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 1320, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1321, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1321, __pyx_L3_error)
__pyx_v_h = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_h == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1321, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1321, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[10]);
if (values[11]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[11]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1321, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1319, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.ref_total_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 1319, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 1319, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 1319, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 1320, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 1320, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 1320, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 1321, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_112ref_total_error(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_112ref_total_error(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h, double __pyx_v_sigma, PyObject *__pyx_v_loss, unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
CYTHON_UNUSED int __pyx_v_N;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_i;
int __pyx_v_j;
int __pyx_v_t;
int __pyx_v_k;
npy_intp *__pyx_v_shape;
__Pyx_memviewslice __pyx_v_err_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_R_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_err;
double __pyx_v_err2;
double __pyx_v_err_sum;
double __pyx_v_R_sum;
double __pyx_v_err_jk;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_0_0ref_total_error", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_11, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_12, 1);
__Pyx_XDECREF(__pyx_t_22);
__Pyx_AddTraceback("pyrost.bin.pyrost.ref_total_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XDEC_MEMVIEW(&__pyx_v_err_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_R_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_282__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults77, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults77, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults77, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults77, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_115ref_total_error(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_6pyrost_3bin_6pyrost_115ref_total_error = {"__pyx_fuse_0_1ref_total_error", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_115ref_total_error, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_18ref_total_error};
static PyObject *__pyx_fuse_0_1__pyx_pw_6pyrost_3bin_6pyrost_115ref_total_error(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_h;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("ref_total_error (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_h,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults77 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults77, __pyx_self);
values[10] = __pyx_dynamic_args->__pyx_arg_loss;
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);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 1); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 2); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 3); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 4); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 5); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 6); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 7); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 8); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 9); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[10] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 11:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[11] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ref_total_error") < 0)) __PYX_ERR(0, 1319, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 1319, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 1319, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 1319, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 1320, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 1320, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 1320, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1321, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1321, __pyx_L3_error)
__pyx_v_h = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_h == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1321, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1321, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[10]);
if (values[11]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[11]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1321, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1319, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.ref_total_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 1319, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 1319, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 1319, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 1320, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 1320, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 1320, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 1321, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_114ref_total_error(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_114ref_total_error(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h, double __pyx_v_sigma, PyObject *__pyx_v_loss, unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
CYTHON_UNUSED int __pyx_v_N;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_i;
int __pyx_v_j;
int __pyx_v_t;
int __pyx_v_k;
npy_intp *__pyx_v_shape;
__Pyx_memviewslice __pyx_v_err_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_R_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_err;
double __pyx_v_err2;
double __pyx_v_err_sum;
double __pyx_v_R_sum;
double __pyx_v_err_jk;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_0_1ref_total_error", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_11, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_12, 1);
__Pyx_XDECREF(__pyx_t_22);
__Pyx_AddTraceback("pyrost.bin.pyrost.ref_total_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XDEC_MEMVIEW(&__pyx_v_err_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_R_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_284__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults78, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults78, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults78, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults78, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_117ref_total_error(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_6pyrost_3bin_6pyrost_117ref_total_error = {"__pyx_fuse_1_0ref_total_error", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_117ref_total_error, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_18ref_total_error};
static PyObject *__pyx_fuse_1_0__pyx_pw_6pyrost_3bin_6pyrost_117ref_total_error(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_h;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("ref_total_error (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_h,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults78 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults78, __pyx_self);
values[10] = __pyx_dynamic_args->__pyx_arg_loss;
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);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 1); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 2); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 3); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 4); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 5); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 6); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 7); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 8); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 9); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[10] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 11:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[11] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ref_total_error") < 0)) __PYX_ERR(0, 1319, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 1319, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 1319, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 1319, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 1320, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 1320, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 1320, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1321, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1321, __pyx_L3_error)
__pyx_v_h = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_h == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1321, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1321, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[10]);
if (values[11]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[11]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1321, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1319, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.ref_total_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 1319, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 1319, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 1319, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 1320, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 1320, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 1320, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 1321, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_116ref_total_error(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_116ref_total_error(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h, double __pyx_v_sigma, PyObject *__pyx_v_loss, unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
CYTHON_UNUSED int __pyx_v_N;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_i;
int __pyx_v_j;
int __pyx_v_t;
int __pyx_v_k;
npy_intp *__pyx_v_shape;
__Pyx_memviewslice __pyx_v_err_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_R_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_err;
double __pyx_v_err2;
double __pyx_v_err_sum;
double __pyx_v_R_sum;
double __pyx_v_err_jk;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_1_0ref_total_error", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_11, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_12, 1);
__Pyx_XDECREF(__pyx_t_22);
__Pyx_AddTraceback("pyrost.bin.pyrost.ref_total_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XDEC_MEMVIEW(&__pyx_v_err_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_R_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_286__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults79, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults79, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults79, __pyx_self)->__pyx_arg_loss);
PyTuple_SET_ITEM(__pyx_t_2, 0, __Pyx_CyFunction_Defaults(__pyx_defaults79, __pyx_self)->__pyx_arg_loss);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_119ref_total_error(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_6pyrost_3bin_6pyrost_119ref_total_error = {"__pyx_fuse_1_1ref_total_error", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_119ref_total_error, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_18ref_total_error};
static PyObject *__pyx_fuse_1_1__pyx_pw_6pyrost_3bin_6pyrost_119ref_total_error(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_I_n = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_W = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_I0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_di = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dj = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_ds_y;
double __pyx_v_ds_x;
double __pyx_v_h;
double __pyx_v_sigma;
PyObject *__pyx_v_loss = 0;
unsigned int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("ref_total_error (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I_n,&__pyx_n_s_W,&__pyx_n_s_I0,&__pyx_n_s_u,&__pyx_n_s_di,&__pyx_n_s_dj,&__pyx_n_s_ds_y,&__pyx_n_s_ds_x,&__pyx_n_s_h,&__pyx_n_s_sigma,&__pyx_n_s_loss,&__pyx_n_s_num_threads,0};
PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
__pyx_defaults79 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults79, __pyx_self);
values[10] = __pyx_dynamic_args->__pyx_arg_loss;
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);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I_n)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 1); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 2); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 3); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_di)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 4); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dj)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 5); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_y)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 6); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_x)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 7); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 8); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sigma)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, 9); __PYX_ERR(0, 1319, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loss);
if (value) { values[10] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 11:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[11] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ref_total_error") < 0)) __PYX_ERR(0, 1319, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 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_I_n = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 1319, __pyx_L3_error)
__pyx_v_W = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_W.memview)) __PYX_ERR(0, 1319, __pyx_L3_error)
__pyx_v_I0 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I0.memview)) __PYX_ERR(0, 1319, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 1320, __pyx_L3_error)
__pyx_v_di = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_di.memview)) __PYX_ERR(0, 1320, __pyx_L3_error)
__pyx_v_dj = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_dj.memview)) __PYX_ERR(0, 1320, __pyx_L3_error)
__pyx_v_ds_y = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_ds_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1321, __pyx_L3_error)
__pyx_v_ds_x = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_ds_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1321, __pyx_L3_error)
__pyx_v_h = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_h == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1321, __pyx_L3_error)
__pyx_v_sigma = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_sigma == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1321, __pyx_L3_error)
__pyx_v_loss = ((PyObject*)values[10]);
if (values[11]) {
__pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[11]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1321, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("ref_total_error", 0, 10, 12, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1319, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.ref_total_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_I_n.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I_n"); __PYX_ERR(0, 1319, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_W.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "W"); __PYX_ERR(0, 1319, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_I0.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "I0"); __PYX_ERR(0, 1319, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_u.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "u"); __PYX_ERR(0, 1320, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_di.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "di"); __PYX_ERR(0, 1320, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_dj.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "dj"); __PYX_ERR(0, 1320, __pyx_L1_error)
}
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_loss), (&PyUnicode_Type), 1, "loss", 1))) __PYX_ERR(0, 1321, __pyx_L1_error)
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_118ref_total_error(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h, __pyx_v_sigma, __pyx_v_loss, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_118ref_total_error(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, double __pyx_v_ds_y, double __pyx_v_ds_x, double __pyx_v_h, double __pyx_v_sigma, PyObject *__pyx_v_loss, unsigned int __pyx_v_num_threads) {
__pyx_t_6pyrost_3bin_6pyrost_loss_func __pyx_v_f;
int __pyx_v_type_num;
CYTHON_UNUSED int __pyx_v_N;
int __pyx_v_Y0;
int __pyx_v_X0;
int __pyx_v_i;
int __pyx_v_j;
int __pyx_v_t;
int __pyx_v_k;
npy_intp *__pyx_v_shape;
__Pyx_memviewslice __pyx_v_err_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_R_buf = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_err;
double __pyx_v_err2;
double __pyx_v_err_sum;
double __pyx_v_R_sum;
double __pyx_v_err_jk;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_1_1ref_total_error", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_11, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_12, 1);
__Pyx_XDECREF(__pyx_t_22);
__Pyx_AddTraceback("pyrost.bin.pyrost.ref_total_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XDEC_MEMVIEW(&__pyx_v_err_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_R_buf, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I_n, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_W, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_I0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_di, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dj, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_GIVEREF(__pyx_n_u_Huber);
PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_n_u_Huber);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
__pyx_t_1 = 0;
/* … */
__pyx_tuple__51 = PyTuple_Pack(29, __pyx_n_s_I_n, __pyx_n_s_W, __pyx_n_s_I0, __pyx_n_s_u, __pyx_n_s_di, __pyx_n_s_dj, __pyx_n_s_ds_y, __pyx_n_s_ds_x, __pyx_n_s_h, __pyx_n_s_sigma, __pyx_n_s_loss, __pyx_n_s_num_threads, __pyx_n_s_f, __pyx_n_s_type_num, __pyx_n_s_N, __pyx_n_s_Y0, __pyx_n_s_X0, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_t, __pyx_n_s_k, __pyx_n_s_shape, __pyx_n_s_err_buf, __pyx_n_s_R_buf, __pyx_n_s_err, __pyx_n_s_err2, __pyx_n_s_err_sum, __pyx_n_s_R_sum, __pyx_n_s_err_jk); if (unlikely(!__pyx_tuple__51)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__51);
__Pyx_GIVEREF(__pyx_tuple__51);
__pyx_t_1 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = __pyx_FusedFunction_New(&__pyx_fuse_0_0__pyx_mdef_6pyrost_3bin_6pyrost_113ref_total_error, 0, __pyx_n_s_ref_total_error, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_5, sizeof(__pyx_defaults76), 1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults76, __pyx_t_5)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults76, __pyx_t_5)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_4);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_5, __pyx_pf_6pyrost_3bin_6pyrost_280__defaults__);
if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint64_t_float64_t, __pyx_t_5) < 0) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __pyx_FusedFunction_New(&__pyx_fuse_0_1__pyx_mdef_6pyrost_3bin_6pyrost_115ref_total_error, 0, __pyx_n_s_ref_total_error, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_5, sizeof(__pyx_defaults77), 1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults77, __pyx_t_5)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults77, __pyx_t_5)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_4);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_5, __pyx_pf_6pyrost_3bin_6pyrost_282__defaults__);
if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint64_t_float32_t, __pyx_t_5) < 0) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __pyx_FusedFunction_New(&__pyx_fuse_1_0__pyx_mdef_6pyrost_3bin_6pyrost_117ref_total_error, 0, __pyx_n_s_ref_total_error, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_5, sizeof(__pyx_defaults78), 1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults78, __pyx_t_5)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults78, __pyx_t_5)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_4);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_5, __pyx_pf_6pyrost_3bin_6pyrost_284__defaults__);
if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint32_t_float64_t, __pyx_t_5) < 0) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __pyx_FusedFunction_New(&__pyx_fuse_1_1__pyx_mdef_6pyrost_3bin_6pyrost_119ref_total_error, 0, __pyx_n_s_ref_total_error, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_5, sizeof(__pyx_defaults79), 1)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_INCREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults79, __pyx_t_5)->__pyx_arg_loss = __pyx_n_u_Huber;
__Pyx_GIVEREF(__pyx_n_u_Huber);
__Pyx_CyFunction_Defaults(__pyx_defaults79, __pyx_t_5)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_4);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_5, __pyx_pf_6pyrost_3bin_6pyrost_286__defaults__);
if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint32_t_float32_t, __pyx_t_5) < 0) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __pyx_FusedFunction_New(&__pyx_mdef_6pyrost_3bin_6pyrost_19ref_total_error, 0, __pyx_n_s_ref_total_error, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_4);
((__pyx_FusedFunctionObject *) __pyx_t_5)->__signatures__ = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
if (PyDict_SetItem(__pyx_d, __pyx_n_s_ref_total_error, __pyx_t_5) < 0) __PYX_ERR(0, 1319, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_codeobj__52 = (PyObject*)__Pyx_PyCode_New(12, 0, 29, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__51, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pyrost_bin_pyrost_pyx, __pyx_n_s_ref_total_error, 1319, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__52)) __PYX_ERR(0, 1319, __pyx_L1_error)
1320: float_t[:, :, ::1] u not None, float_t[::1] di not None, float_t[::1] dj not None,
+1321: double ds_y, double ds_x, double h, double sigma, str loss='Huber', unsigned num_threads=1):
__pyx_t_1 = __Pyx_PyInt_From_long(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
1322: r"""Return the mean residual for the reference image regression.
1323:
1324: Args:
1325: I_n (numpy.ndarray) : Measured intensity frames.
1326: W (numpy.ndarray) : Measured frames' whitefield.
1327: I0 (numpy.ndarray) : Reference image of the sample.
1328: u (numpy.ndarray) : The discrete geometrical mapping of the detector
1329: plane to the reference image.
1330: di (numpy.ndarray) : Sample's translations along the vertical
1331: detector axis in pixels.
1332: dj (numpy.ndarray): Sample's translations along the fast detector
1333: axis in pixels.
1334: ds_y (float) : Sampling interval of reference image in pixels along
1335: the vertical axis.
1336: ds_x (float) : Sampling interval of reference image in pixels along
1337: the horizontal axis.
1338: h (float) : Kernel bandwidth in pixels.
1339: sigma (float) : The standard deviation of `I_n`.
1340: loss (str) : Choose between the following loss functions:
1341:
1342: * 'Epsilon': Epsilon loss function (epsilon = 0.5)
1343: * 'Huber' : Huber loss function (k = 1.345)
1344: * 'L1' : L1 norm loss function.
1345: * 'L2' : L2 norm loss function.
1346:
1347: num_threads (int) : Number of threads.
1348:
1349: Returns:
1350: float : Mean residual value.
1351:
1352: Notes:
1353: The pixel mapping `u` maps the intensity measurements from the
1354: detector plane to the reference plane as follows:
1355:
1356: .. math::
1357: i_{ref}[n, i, j] = u[0, i, j] + di[n], \; j_{ref}[n, i, j] = u[1, i, j] + dj[n]
1358:
1359: The error metric is given by:
1360:
1361: .. math::
1362:
1363: \varepsilon_{ref}[i, j] = \sum_{n, i^{\prime}, j^{\prime}}
1364: K[i - i_{ref}[n, i^{\prime}, j^{\prime}],
1365: j - j_{ref}[n, i^{\prime}, j^{\prime}], h] \;
1366: f\left( \frac{I_n[n, i^{\prime}, j^{\prime}] -
1367: W[i^{\prime}, j^{\prime}] I_{ref}[i, j]}{\sigma} \right)
1368:
1369: where :math:`f(x)` is L1 norm, L2 norm or Huber loss function
1370: and :math:`K[i, j, h] = \frac{1}{\sqrt{2 \pi}} \exp(-\frac{i^2 + j^2}{h})`
1371: is the Gaussian kernel.
1372:
1373: See Also:
1374: :func:`pyrost.bin.KR_reference` : Description of the reference image
1375: estimator.
1376: """
+1377: if ds_y <= 0.0 or ds_x <= 0.0:
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
/* … */
__pyx_t_2 = ((__pyx_v_ds_y <= 0.0) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ds_x <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(__pyx_t_1)) {
/* … */
}
+1378: raise ValueError('Sampling intervals must be positive')
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 1378, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 1378, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 1378, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 1378, __pyx_L1_error)
1379:
+1380: cdef loss_func f = choose_loss(loss)
__pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss); /* … */ __pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss); /* … */ __pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss); /* … */ __pyx_v_f = __pyx_f_6pyrost_3bin_6pyrost_choose_loss(__pyx_v_loss);
1381:
+1382: cdef int type_num = np.PyArray_TYPE(W.base)
__pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1382, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1382, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1382, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_W, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1382, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_4)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1383: cdef int N = I_n.shape[0], Y0 = I0.shape[0], X0 = I0.shape[1]
__pyx_v_N = (__pyx_v_I_n.shape[0]); __pyx_v_Y0 = (__pyx_v_I0.shape[0]); __pyx_v_X0 = (__pyx_v_I0.shape[1]); /* … */ __pyx_v_N = (__pyx_v_I_n.shape[0]); __pyx_v_Y0 = (__pyx_v_I0.shape[0]); __pyx_v_X0 = (__pyx_v_I0.shape[1]); /* … */ __pyx_v_N = (__pyx_v_I_n.shape[0]); __pyx_v_Y0 = (__pyx_v_I0.shape[0]); __pyx_v_X0 = (__pyx_v_I0.shape[1]); /* … */ __pyx_v_N = (__pyx_v_I_n.shape[0]); __pyx_v_Y0 = (__pyx_v_I0.shape[0]); __pyx_v_X0 = (__pyx_v_I0.shape[1]);
1384: cdef int i, j, t, k
1385:
+1386: cdef np.npy_intp *shape = [num_threads, Y0, X0]
__pyx_t_5[0] = __pyx_v_num_threads; __pyx_t_5[1] = __pyx_v_Y0; __pyx_t_5[2] = __pyx_v_X0; __pyx_v_shape = __pyx_t_5; /* … */ __pyx_t_5[0] = __pyx_v_num_threads; __pyx_t_5[1] = __pyx_v_Y0; __pyx_t_5[2] = __pyx_v_X0; __pyx_v_shape = __pyx_t_5; /* … */ __pyx_t_5[0] = __pyx_v_num_threads; __pyx_t_5[1] = __pyx_v_Y0; __pyx_t_5[2] = __pyx_v_X0; __pyx_v_shape = __pyx_t_5; /* … */ __pyx_t_5[0] = __pyx_v_num_threads; __pyx_t_5[1] = __pyx_v_Y0; __pyx_t_5[2] = __pyx_v_X0; __pyx_v_shape = __pyx_t_5;
+1387: cdef float_t[:, :, ::1] err_buf = np.PyArray_ZEROS(3, shape, type_num, 0)
__pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1387, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1387, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_err_buf = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1387, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1387, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_err_buf = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1387, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1387, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_err_buf = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1387, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1387, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_err_buf = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL;
+1388: cdef float_t[:, :, ::1] R_buf = np.PyArray_ZEROS(3, shape, type_num, 0)
__pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1388, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1388, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_R_buf = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1388, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1388, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_R_buf = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1388, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1388, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_R_buf = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __pyx_t_4 = PyArray_ZEROS(3, __pyx_v_shape, __pyx_v_type_num, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1388, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 1388, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_R_buf = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL;
1389:
+1390: for i in prange(N, schedule='guided', num_threads=num_threads, nogil=True):
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_7 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_9 = (__pyx_t_7 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_9 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_7 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_9 = (__pyx_t_7 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_9 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_9; __pyx_t_8++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_8);
/* Initialize private variables to invalid values */
__pyx_v_t = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_7 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_9 = (__pyx_t_7 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_9 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_7 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_9 = (__pyx_t_7 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_9 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_9; __pyx_t_8++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_8);
/* Initialize private variables to invalid values */
__pyx_v_t = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_7 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_9 = (__pyx_t_7 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_9 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_7 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_9 = (__pyx_t_7 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_9 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_9; __pyx_t_8++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_8);
/* Initialize private variables to invalid values */
__pyx_v_t = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_7 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_9 = (__pyx_t_7 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_9 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_7 = __pyx_v_N;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_9 = (__pyx_t_7 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_9 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_t) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_9; __pyx_t_8++){
{
__pyx_v_i = (int)(0 + 1 * __pyx_t_8);
/* Initialize private variables to invalid values */
__pyx_v_t = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L8:;
}
}
+1391: t = openmp.omp_get_thread_num()
__pyx_v_t = omp_get_thread_num();
/* … */
__pyx_v_t = omp_get_thread_num();
/* … */
__pyx_v_t = omp_get_thread_num();
/* … */
__pyx_v_t = omp_get_thread_num();
+1392: FVU_frame(err_buf[t], R_buf[t], I0, I_n[i], W, u, di[i], dj[i],
__pyx_t_10.data = __pyx_v_err_buf.data;
__pyx_t_10.memview = __pyx_v_err_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_10, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_err_buf.strides[0];
__pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_10.shape[0] = __pyx_v_err_buf.shape[1];
__pyx_t_10.strides[0] = __pyx_v_err_buf.strides[1];
__pyx_t_10.suboffsets[0] = -1;
__pyx_t_10.shape[1] = __pyx_v_err_buf.shape[2];
__pyx_t_10.strides[1] = __pyx_v_err_buf.strides[2];
__pyx_t_10.suboffsets[1] = -1;
__pyx_t_11.data = __pyx_v_R_buf.data;
__pyx_t_11.memview = __pyx_v_R_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_11, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_R_buf.strides[0];
__pyx_t_11.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_11.shape[0] = __pyx_v_R_buf.shape[1];
__pyx_t_11.strides[0] = __pyx_v_R_buf.strides[1];
__pyx_t_11.suboffsets[0] = -1;
__pyx_t_11.shape[1] = __pyx_v_R_buf.shape[2];
__pyx_t_11.strides[1] = __pyx_v_R_buf.strides[2];
__pyx_t_11.suboffsets[1] = -1;
__pyx_t_12.data = __pyx_v_I_n.data;
__pyx_t_12.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_12, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_12.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_12.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_12.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_12.suboffsets[0] = -1;
__pyx_t_12.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_12.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_12.suboffsets[1] = -1;
__pyx_t_13 = __pyx_v_i;
__pyx_t_14 = __pyx_v_i;
/* … */
__pyx_fuse_0_0__pyx_f_6pyrost_3bin_6pyrost_FVU_frame(__pyx_t_10, __pyx_t_11, __pyx_v_I0, __pyx_t_12, __pyx_v_W, __pyx_v_u, (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_di.data) + __pyx_t_13)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dj.data) + __pyx_t_14)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h, __pyx_v_sigma, __pyx_v_f);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 0);
__pyx_t_10.memview = NULL;
__pyx_t_10.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_11, 0);
__pyx_t_11.memview = NULL;
__pyx_t_11.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_12, 0);
__pyx_t_12.memview = NULL;
__pyx_t_12.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_10.data = __pyx_v_err_buf.data;
__pyx_t_10.memview = __pyx_v_err_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_10, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_err_buf.strides[0];
__pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_10.shape[0] = __pyx_v_err_buf.shape[1];
__pyx_t_10.strides[0] = __pyx_v_err_buf.strides[1];
__pyx_t_10.suboffsets[0] = -1;
__pyx_t_10.shape[1] = __pyx_v_err_buf.shape[2];
__pyx_t_10.strides[1] = __pyx_v_err_buf.strides[2];
__pyx_t_10.suboffsets[1] = -1;
__pyx_t_11.data = __pyx_v_R_buf.data;
__pyx_t_11.memview = __pyx_v_R_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_11, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_R_buf.strides[0];
__pyx_t_11.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_11.shape[0] = __pyx_v_R_buf.shape[1];
__pyx_t_11.strides[0] = __pyx_v_R_buf.strides[1];
__pyx_t_11.suboffsets[0] = -1;
__pyx_t_11.shape[1] = __pyx_v_R_buf.shape[2];
__pyx_t_11.strides[1] = __pyx_v_R_buf.strides[2];
__pyx_t_11.suboffsets[1] = -1;
__pyx_t_12.data = __pyx_v_I_n.data;
__pyx_t_12.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_12, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_12.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_12.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_12.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_12.suboffsets[0] = -1;
__pyx_t_12.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_12.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_12.suboffsets[1] = -1;
__pyx_t_13 = __pyx_v_i;
__pyx_t_14 = __pyx_v_i;
/* … */
__pyx_fuse_1_0__pyx_f_6pyrost_3bin_6pyrost_FVU_frame(__pyx_t_10, __pyx_t_11, __pyx_v_I0, __pyx_t_12, __pyx_v_W, __pyx_v_u, (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_di.data) + __pyx_t_13)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dj.data) + __pyx_t_14)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h, __pyx_v_sigma, __pyx_v_f);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 0);
__pyx_t_10.memview = NULL;
__pyx_t_10.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_11, 0);
__pyx_t_11.memview = NULL;
__pyx_t_11.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_12, 0);
__pyx_t_12.memview = NULL;
__pyx_t_12.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_10.data = __pyx_v_err_buf.data;
__pyx_t_10.memview = __pyx_v_err_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_10, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_err_buf.strides[0];
__pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_10.shape[0] = __pyx_v_err_buf.shape[1];
__pyx_t_10.strides[0] = __pyx_v_err_buf.strides[1];
__pyx_t_10.suboffsets[0] = -1;
__pyx_t_10.shape[1] = __pyx_v_err_buf.shape[2];
__pyx_t_10.strides[1] = __pyx_v_err_buf.strides[2];
__pyx_t_10.suboffsets[1] = -1;
__pyx_t_11.data = __pyx_v_R_buf.data;
__pyx_t_11.memview = __pyx_v_R_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_11, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_R_buf.strides[0];
__pyx_t_11.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_11.shape[0] = __pyx_v_R_buf.shape[1];
__pyx_t_11.strides[0] = __pyx_v_R_buf.strides[1];
__pyx_t_11.suboffsets[0] = -1;
__pyx_t_11.shape[1] = __pyx_v_R_buf.shape[2];
__pyx_t_11.strides[1] = __pyx_v_R_buf.strides[2];
__pyx_t_11.suboffsets[1] = -1;
__pyx_t_12.data = __pyx_v_I_n.data;
__pyx_t_12.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_12, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_12.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_12.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_12.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_12.suboffsets[0] = -1;
__pyx_t_12.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_12.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_12.suboffsets[1] = -1;
__pyx_t_13 = __pyx_v_i;
__pyx_t_14 = __pyx_v_i;
/* … */
__pyx_fuse_0_1__pyx_f_6pyrost_3bin_6pyrost_FVU_frame(__pyx_t_10, __pyx_t_11, __pyx_v_I0, __pyx_t_12, __pyx_v_W, __pyx_v_u, (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_di.data) + __pyx_t_13)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dj.data) + __pyx_t_14)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h, __pyx_v_sigma, __pyx_v_f);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 0);
__pyx_t_10.memview = NULL;
__pyx_t_10.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_11, 0);
__pyx_t_11.memview = NULL;
__pyx_t_11.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_12, 0);
__pyx_t_12.memview = NULL;
__pyx_t_12.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_10.data = __pyx_v_err_buf.data;
__pyx_t_10.memview = __pyx_v_err_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_10, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_err_buf.strides[0];
__pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_10.shape[0] = __pyx_v_err_buf.shape[1];
__pyx_t_10.strides[0] = __pyx_v_err_buf.strides[1];
__pyx_t_10.suboffsets[0] = -1;
__pyx_t_10.shape[1] = __pyx_v_err_buf.shape[2];
__pyx_t_10.strides[1] = __pyx_v_err_buf.strides[2];
__pyx_t_10.suboffsets[1] = -1;
__pyx_t_11.data = __pyx_v_R_buf.data;
__pyx_t_11.memview = __pyx_v_R_buf.memview;
__PYX_INC_MEMVIEW(&__pyx_t_11, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_t;
Py_ssize_t __pyx_tmp_stride = __pyx_v_R_buf.strides[0];
__pyx_t_11.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_11.shape[0] = __pyx_v_R_buf.shape[1];
__pyx_t_11.strides[0] = __pyx_v_R_buf.strides[1];
__pyx_t_11.suboffsets[0] = -1;
__pyx_t_11.shape[1] = __pyx_v_R_buf.shape[2];
__pyx_t_11.strides[1] = __pyx_v_R_buf.strides[2];
__pyx_t_11.suboffsets[1] = -1;
__pyx_t_12.data = __pyx_v_I_n.data;
__pyx_t_12.memview = __pyx_v_I_n.memview;
__PYX_INC_MEMVIEW(&__pyx_t_12, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
Py_ssize_t __pyx_tmp_stride = __pyx_v_I_n.strides[0];
__pyx_t_12.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_12.shape[0] = __pyx_v_I_n.shape[1];
__pyx_t_12.strides[0] = __pyx_v_I_n.strides[1];
__pyx_t_12.suboffsets[0] = -1;
__pyx_t_12.shape[1] = __pyx_v_I_n.shape[2];
__pyx_t_12.strides[1] = __pyx_v_I_n.strides[2];
__pyx_t_12.suboffsets[1] = -1;
__pyx_t_13 = __pyx_v_i;
__pyx_t_14 = __pyx_v_i;
/* … */
__pyx_fuse_1_1__pyx_f_6pyrost_3bin_6pyrost_FVU_frame(__pyx_t_10, __pyx_t_11, __pyx_v_I0, __pyx_t_12, __pyx_v_W, __pyx_v_u, (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_di.data) + __pyx_t_13)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dj.data) + __pyx_t_14)) ))), __pyx_v_ds_y, __pyx_v_ds_x, __pyx_v_h, __pyx_v_sigma, __pyx_v_f);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 0);
__pyx_t_10.memview = NULL;
__pyx_t_10.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_11, 0);
__pyx_t_11.memview = NULL;
__pyx_t_11.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_12, 0);
__pyx_t_12.memview = NULL;
__pyx_t_12.data = NULL;
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
1393: ds_y, ds_x, h, sigma, f)
1394:
+1395: cdef double err = 0.0, err2 = 0.0
__pyx_v_err = 0.0; __pyx_v_err2 = 0.0; /* … */ __pyx_v_err = 0.0; __pyx_v_err2 = 0.0; /* … */ __pyx_v_err = 0.0; __pyx_v_err2 = 0.0; /* … */ __pyx_v_err = 0.0; __pyx_v_err2 = 0.0;
1396: cdef double err_sum, R_sum, err_jk
+1397: for k in prange(X0, schedule='guided', num_threads=num_threads, nogil=True):
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_9 = __pyx_v_X0;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_7 = (__pyx_t_9 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_7 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_R_sum) reduction(+:__pyx_v_err) reduction(+:__pyx_v_err2) lastprivate(__pyx_v_err_jk) lastprivate(__pyx_v_err_sum) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_9 = __pyx_v_X0;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_7 = (__pyx_t_9 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_7 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_R_sum) reduction(+:__pyx_v_err) reduction(+:__pyx_v_err2) lastprivate(__pyx_v_err_jk) lastprivate(__pyx_v_err_sum) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_8);
/* Initialize private variables to invalid values */
__pyx_v_R_sum = ((double)__PYX_NAN());
__pyx_v_err_jk = ((double)__PYX_NAN());
__pyx_v_err_sum = ((double)__PYX_NAN());
__pyx_v_i = ((int)0xbad0bad0);
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L17;
}
__pyx_L17:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_9 = __pyx_v_X0;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_7 = (__pyx_t_9 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_7 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_R_sum) reduction(+:__pyx_v_err) reduction(+:__pyx_v_err2) lastprivate(__pyx_v_err_jk) lastprivate(__pyx_v_err_sum) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_9 = __pyx_v_X0;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_7 = (__pyx_t_9 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_7 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_R_sum) reduction(+:__pyx_v_err) reduction(+:__pyx_v_err2) lastprivate(__pyx_v_err_jk) lastprivate(__pyx_v_err_sum) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_8);
/* Initialize private variables to invalid values */
__pyx_v_R_sum = ((double)__PYX_NAN());
__pyx_v_err_jk = ((double)__PYX_NAN());
__pyx_v_err_sum = ((double)__PYX_NAN());
__pyx_v_i = ((int)0xbad0bad0);
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L17;
}
__pyx_L17:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_9 = __pyx_v_X0;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_7 = (__pyx_t_9 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_7 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_R_sum) reduction(+:__pyx_v_err) reduction(+:__pyx_v_err2) lastprivate(__pyx_v_err_jk) lastprivate(__pyx_v_err_sum) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_9 = __pyx_v_X0;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_7 = (__pyx_t_9 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_7 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_R_sum) reduction(+:__pyx_v_err) reduction(+:__pyx_v_err2) lastprivate(__pyx_v_err_jk) lastprivate(__pyx_v_err_sum) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_8);
/* Initialize private variables to invalid values */
__pyx_v_R_sum = ((double)__PYX_NAN());
__pyx_v_err_jk = ((double)__PYX_NAN());
__pyx_v_err_sum = ((double)__PYX_NAN());
__pyx_v_i = ((int)0xbad0bad0);
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L17;
}
__pyx_L17:;
}
}
/* … */
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
__pyx_t_9 = __pyx_v_X0;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_7 = (__pyx_t_9 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_7 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_R_sum) reduction(+:__pyx_v_err) reduction(+:__pyx_v_err2) lastprivate(__pyx_v_err_jk) lastprivate(__pyx_v_err_sum) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) __pyx_t_9 = __pyx_v_X0;
if ((1 == 0)) abort();
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
__pyx_t_7 = (__pyx_t_9 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_7 > 0)
{
#ifdef _OPENMP
#pragma omp parallel
#endif /* _OPENMP */
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_R_sum) reduction(+:__pyx_v_err) reduction(+:__pyx_v_err2) lastprivate(__pyx_v_err_jk) lastprivate(__pyx_v_err_sum) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) schedule(guided) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8++){
{
__pyx_v_k = (int)(0 + 1 * __pyx_t_8);
/* Initialize private variables to invalid values */
__pyx_v_R_sum = ((double)__PYX_NAN());
__pyx_v_err_jk = ((double)__PYX_NAN());
__pyx_v_err_sum = ((double)__PYX_NAN());
__pyx_v_i = ((int)0xbad0bad0);
__pyx_v_j = ((int)0xbad0bad0);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L17;
}
__pyx_L17:;
}
}
+1398: for j in range(Y0):
__pyx_t_15 = __pyx_v_Y0;
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_j = __pyx_t_17;
/* … */
__pyx_t_15 = __pyx_v_Y0;
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_j = __pyx_t_17;
/* … */
__pyx_t_15 = __pyx_v_Y0;
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_j = __pyx_t_17;
/* … */
__pyx_t_15 = __pyx_v_Y0;
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_j = __pyx_t_17;
+1399: err_sum = 0.0; R_sum = 0.0
__pyx_v_err_sum = 0.0;
__pyx_v_R_sum = 0.0;
/* … */
__pyx_v_err_sum = 0.0;
__pyx_v_R_sum = 0.0;
/* … */
__pyx_v_err_sum = 0.0;
__pyx_v_R_sum = 0.0;
/* … */
__pyx_v_err_sum = 0.0;
__pyx_v_R_sum = 0.0;
+1400: for i in range(<int>num_threads):
__pyx_t_18 = ((int)__pyx_v_num_threads);
__pyx_t_19 = __pyx_t_18;
for (__pyx_t_20 = 0; __pyx_t_20 < __pyx_t_19; __pyx_t_20+=1) {
__pyx_v_i = __pyx_t_20;
/* … */
__pyx_t_18 = ((int)__pyx_v_num_threads);
__pyx_t_19 = __pyx_t_18;
for (__pyx_t_20 = 0; __pyx_t_20 < __pyx_t_19; __pyx_t_20+=1) {
__pyx_v_i = __pyx_t_20;
/* … */
__pyx_t_18 = ((int)__pyx_v_num_threads);
__pyx_t_19 = __pyx_t_18;
for (__pyx_t_20 = 0; __pyx_t_20 < __pyx_t_19; __pyx_t_20+=1) {
__pyx_v_i = __pyx_t_20;
/* … */
__pyx_t_18 = ((int)__pyx_v_num_threads);
__pyx_t_19 = __pyx_t_18;
for (__pyx_t_20 = 0; __pyx_t_20 < __pyx_t_19; __pyx_t_20+=1) {
__pyx_v_i = __pyx_t_20;
+1401: err_sum = err_sum + err_buf[i, j, k]
__pyx_t_14 = __pyx_v_i;
__pyx_t_13 = __pyx_v_j;
__pyx_t_21 = __pyx_v_k;
__pyx_v_err_sum = (__pyx_v_err_sum + (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_err_buf.data + __pyx_t_14 * __pyx_v_err_buf.strides[0]) ) + __pyx_t_13 * __pyx_v_err_buf.strides[1]) )) + __pyx_t_21)) ))));
/* … */
__pyx_t_14 = __pyx_v_i;
__pyx_t_13 = __pyx_v_j;
__pyx_t_21 = __pyx_v_k;
__pyx_v_err_sum = (__pyx_v_err_sum + (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_err_buf.data + __pyx_t_14 * __pyx_v_err_buf.strides[0]) ) + __pyx_t_13 * __pyx_v_err_buf.strides[1]) )) + __pyx_t_21)) ))));
/* … */
__pyx_t_14 = __pyx_v_i;
__pyx_t_13 = __pyx_v_j;
__pyx_t_21 = __pyx_v_k;
__pyx_v_err_sum = (__pyx_v_err_sum + (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_err_buf.data + __pyx_t_14 * __pyx_v_err_buf.strides[0]) ) + __pyx_t_13 * __pyx_v_err_buf.strides[1]) )) + __pyx_t_21)) ))));
/* … */
__pyx_t_14 = __pyx_v_i;
__pyx_t_13 = __pyx_v_j;
__pyx_t_21 = __pyx_v_k;
__pyx_v_err_sum = (__pyx_v_err_sum + (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_err_buf.data + __pyx_t_14 * __pyx_v_err_buf.strides[0]) ) + __pyx_t_13 * __pyx_v_err_buf.strides[1]) )) + __pyx_t_21)) ))));
+1402: R_sum = R_sum + R_buf[i, j, k]
__pyx_t_21 = __pyx_v_i;
__pyx_t_13 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_v_R_sum = (__pyx_v_R_sum + (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_R_buf.data + __pyx_t_21 * __pyx_v_R_buf.strides[0]) ) + __pyx_t_13 * __pyx_v_R_buf.strides[1]) )) + __pyx_t_14)) ))));
}
/* … */
__pyx_t_21 = __pyx_v_i;
__pyx_t_13 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_v_R_sum = (__pyx_v_R_sum + (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_R_buf.data + __pyx_t_21 * __pyx_v_R_buf.strides[0]) ) + __pyx_t_13 * __pyx_v_R_buf.strides[1]) )) + __pyx_t_14)) ))));
}
/* … */
__pyx_t_21 = __pyx_v_i;
__pyx_t_13 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_v_R_sum = (__pyx_v_R_sum + (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_R_buf.data + __pyx_t_21 * __pyx_v_R_buf.strides[0]) ) + __pyx_t_13 * __pyx_v_R_buf.strides[1]) )) + __pyx_t_14)) ))));
}
/* … */
__pyx_t_21 = __pyx_v_i;
__pyx_t_13 = __pyx_v_j;
__pyx_t_14 = __pyx_v_k;
__pyx_v_R_sum = (__pyx_v_R_sum + (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_R_buf.data + __pyx_t_21 * __pyx_v_R_buf.strides[0]) ) + __pyx_t_13 * __pyx_v_R_buf.strides[1]) )) + __pyx_t_14)) ))));
}
1403:
+1404: if R_sum > 0.0:
__pyx_t_1 = ((__pyx_v_R_sum > 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_1 = ((__pyx_v_R_sum > 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_1 = ((__pyx_v_R_sum > 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
/* … */
__pyx_t_1 = ((__pyx_v_R_sum > 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
+1405: err_jk = err_sum / R_sum
__pyx_v_err_jk = (__pyx_v_err_sum / __pyx_v_R_sum);
/* … */
__pyx_v_err_jk = (__pyx_v_err_sum / __pyx_v_R_sum);
/* … */
__pyx_v_err_jk = (__pyx_v_err_sum / __pyx_v_R_sum);
/* … */
__pyx_v_err_jk = (__pyx_v_err_sum / __pyx_v_R_sum);
+1406: err += err_jk
__pyx_v_err = (__pyx_v_err + __pyx_v_err_jk);
/* … */
__pyx_v_err = (__pyx_v_err + __pyx_v_err_jk);
/* … */
__pyx_v_err = (__pyx_v_err + __pyx_v_err_jk);
/* … */
__pyx_v_err = (__pyx_v_err + __pyx_v_err_jk);
+1407: err2 += err_jk * err_jk
__pyx_v_err2 = (__pyx_v_err2 + (__pyx_v_err_jk * __pyx_v_err_jk));
/* … */
__pyx_v_err2 = (__pyx_v_err2 + (__pyx_v_err_jk * __pyx_v_err_jk));
/* … */
__pyx_v_err2 = (__pyx_v_err2 + (__pyx_v_err_jk * __pyx_v_err_jk));
/* … */
__pyx_v_err2 = (__pyx_v_err2 + (__pyx_v_err_jk * __pyx_v_err_jk));
1408:
+1409: err /= (X0 * Y0)
__pyx_v_err = (__pyx_v_err / (__pyx_v_X0 * __pyx_v_Y0)); /* … */ __pyx_v_err = (__pyx_v_err / (__pyx_v_X0 * __pyx_v_Y0)); /* … */ __pyx_v_err = (__pyx_v_err / (__pyx_v_X0 * __pyx_v_Y0)); /* … */ __pyx_v_err = (__pyx_v_err / (__pyx_v_X0 * __pyx_v_Y0));
+1410: err2 /= (X0 * Y0)
__pyx_v_err2 = (__pyx_v_err2 / (__pyx_v_X0 * __pyx_v_Y0)); /* … */ __pyx_v_err2 = (__pyx_v_err2 / (__pyx_v_X0 * __pyx_v_Y0)); /* … */ __pyx_v_err2 = (__pyx_v_err2 / (__pyx_v_X0 * __pyx_v_Y0)); /* … */ __pyx_v_err2 = (__pyx_v_err2 / (__pyx_v_X0 * __pyx_v_Y0));
1411:
+1412: return err, sqrt(err2 - err * err)
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyFloat_FromDouble(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyFloat_FromDouble(sqrt((__pyx_v_err2 - (__pyx_v_err * __pyx_v_err)))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_22 = PyTuple_New(2); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_22, 1, __pyx_t_3); __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_r = __pyx_t_22; __pyx_t_22 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyFloat_FromDouble(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyFloat_FromDouble(sqrt((__pyx_v_err2 - (__pyx_v_err * __pyx_v_err)))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_22 = PyTuple_New(2); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_22, 1, __pyx_t_3); __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_r = __pyx_t_22; __pyx_t_22 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyFloat_FromDouble(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyFloat_FromDouble(sqrt((__pyx_v_err2 - (__pyx_v_err * __pyx_v_err)))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_22 = PyTuple_New(2); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_22, 1, __pyx_t_3); __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_r = __pyx_t_22; __pyx_t_22 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyFloat_FromDouble(__pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyFloat_FromDouble(sqrt((__pyx_v_err2 - (__pyx_v_err * __pyx_v_err)))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_22 = PyTuple_New(2); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_22, 1, __pyx_t_3); __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_r = __pyx_t_22; __pyx_t_22 = 0; goto __pyx_L0;
1413:
+1414: def ct_integrate(float_t[:, ::1] sy_arr not None, float_t[:, ::1] sx_arr not None, int num_threads=1) -> np.ndarray:
/* Python wrapper */
static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_21ct_integrate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6pyrost_3bin_6pyrost_20ct_integrate[] = "Perform the Fourier Transform wavefront reconstruction [FTI]_ with\n antisymmetric derivative integration [ASDI]_.\n\n Args:\n sx_arr (numpy.ndarray) : of gradient values along the horizontal axis.\n sy_arr (numpy.ndarray) : Array of gradient values along the vertical axis.\n num_threads (int) : Number of threads.\n\n Returns:\n numpy.ndarray : Reconstructed wavefront.\n\n References:\n .. [FTI] C. Kottler, C. David, F. Pfeiffer, and O. Bunk,\n \"A two-directional approach for grating based\n differential phase contrast imaging using hard x-rays,\"\n Opt. Express 15, 1175-1181 (2007).\n .. [ASDI] Pierre Bon, Serge Monneret, and Benoit Wattellier,\n \"Noniterative boundary-artifact-free wavefront\n reconstruction from its derivatives,\" Appl. Opt. 51,\n 5698-5704 (2012).\n ";
static PyMethodDef __pyx_mdef_6pyrost_3bin_6pyrost_21ct_integrate = {"ct_integrate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pyrost_3bin_6pyrost_21ct_integrate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_20ct_integrate};
static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_21ct_integrate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_signatures = 0;
PyObject *__pyx_v_args = 0;
PyObject *__pyx_v_kwargs = 0;
CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
PyObject* values[4] = {0,0,0,0};
values[2] = __pyx_k__10;
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 1414, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 1414, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 1414, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
}
__pyx_v_signatures = values[0];
__pyx_v_args = values[1];
__pyx_v_kwargs = values[2];
__pyx_v_defaults = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1414, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_20ct_integrate(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_20ct_integrate(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
PyObject *__pyx_v_dest_sig = NULL;
Py_ssize_t __pyx_v_i;
PyTypeObject *__pyx_v_ndarray = 0;
__Pyx_memviewslice __pyx_v_memslice;
Py_ssize_t __pyx_v_itemsize;
CYTHON_UNUSED int __pyx_v_dtype_signed;
char __pyx_v_kind;
PyObject *__pyx_v_arg = NULL;
PyObject *__pyx_v_dtype = NULL;
PyObject *__pyx_v_arg_base = NULL;
PyObject *__pyx_v_candidates = NULL;
PyObject *__pyx_v_sig = NULL;
int __pyx_v_match_found;
PyObject *__pyx_v_src_sig = NULL;
PyObject *__pyx_v_dst_type = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("ct_integrate", 0);
__Pyx_INCREF(__pyx_v_kwargs);
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
__pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_3 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1414, __pyx_L1_error)
__pyx_t_3 = ((!__pyx_t_4) != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L4_bool_binop_done:;
if (__pyx_t_2) {
__Pyx_INCREF(Py_None);
__Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
}
__pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
__pyx_t_1 = 0;
__pyx_v_itemsize = -1L;
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 1414, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1414, __pyx_L1_error)
__pyx_t_2 = ((0 < __pyx_t_5) != 0);
if (__pyx_t_2) {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1414, __pyx_L1_error)
}
__pyx_t_1 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 0);
__Pyx_INCREF(__pyx_t_1);
__pyx_v_arg = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L6;
}
__pyx_t_3 = (__pyx_v_kwargs != Py_None);
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L7_bool_binop_done;
}
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1414, __pyx_L1_error)
}
__pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_sy_arr, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 1414, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_4 != 0);
__pyx_t_2 = __pyx_t_3;
__pyx_L7_bool_binop_done:;
if (__pyx_t_2) {
if (unlikely(__pyx_v_kwargs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1414, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_sy_arr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_arg = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L6;
}
/*else*/ {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 1414, __pyx_L1_error)
}
__pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1414, __pyx_L1_error)
__pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_INCREF(__pyx_int_2);
__Pyx_GIVEREF(__pyx_int_2);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
__Pyx_INCREF(__pyx_n_s_s);
__Pyx_GIVEREF(__pyx_n_s_s);
PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_Raise(__pyx_t_6, 0, 0, 0);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__PYX_ERR(0, 1414, __pyx_L1_error)
}
__pyx_L6:;
while (1) {
__pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_dtype = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L12;
}
__pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_arg_base = __pyx_t_6;
__pyx_t_6 = 0;
__pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_dtype = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L13;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__pyx_v_dtype = Py_None;
}
__pyx_L13:;
goto __pyx_L12;
}
/*else*/ {
__Pyx_INCREF(Py_None);
__pyx_v_dtype = Py_None;
}
__pyx_L12:;
__pyx_v_itemsize = -1L;
__pyx_t_2 = (__pyx_v_dtype != Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_itemsize = __pyx_t_5;
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_kind = __pyx_t_7;
__pyx_v_dtype_signed = (__pyx_v_kind == 'i');
switch (__pyx_v_kind) {
case 'i':
case 'u':
break;
case 'f':
__pyx_t_2 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L16_bool_binop_done;
}
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 2) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L16_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1414, __pyx_L1_error)
goto __pyx_L10_break;
}
__pyx_t_2 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L19_bool_binop_done;
}
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 2) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L19_bool_binop_done:;
if (__pyx_t_3) {
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1414, __pyx_L1_error)
goto __pyx_L10_break;
}
break;
case 'c':
break;
case 'O':
break;
default: break;
}
}
}
__pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L22_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L22_bool_binop_done:;
if (__pyx_t_3) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_3 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_3) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1414, __pyx_L1_error)
goto __pyx_L10_break;
}
/*else*/ {
PyErr_Clear();
}
}
__pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L26_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0);
__pyx_t_3 = __pyx_t_2;
__pyx_L26_bool_binop_done:;
if (__pyx_t_3) {
__pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0);
__pyx_v_memslice = __pyx_t_8;
__pyx_t_3 = (__pyx_v_memslice.memview != 0);
if (__pyx_t_3) {
__PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1414, __pyx_L1_error)
goto __pyx_L10_break;
}
/*else*/ {
PyErr_Clear();
}
}
if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1414, __pyx_L1_error)
goto __pyx_L10_break;
}
__pyx_L10_break:;
__pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_v_candidates = ((PyObject*)__pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_5 = 0;
if (unlikely(__pyx_v_signatures == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
__PYX_ERR(0, 1414, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6);
__pyx_t_6 = __pyx_t_1;
__pyx_t_1 = 0;
while (1) {
__pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_9, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_10);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_v_match_found = 0;
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_14 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
__pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
if (likely(__pyx_t_14)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
__Pyx_INCREF(__pyx_t_14);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_13, function);
}
}
__pyx_t_12 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2);
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
__pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
if (likely(__pyx_t_12)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
__Pyx_INCREF(__pyx_t_12);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_13, function);
}
}
__pyx_t_1 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__3);
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_15 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1414, __pyx_L1_error)
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_i = __pyx_t_17;
__pyx_t_1 = PyList_GET_ITEM(__pyx_v_dest_sig, __pyx_v_i);
__Pyx_INCREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_3 = (__pyx_v_dst_type != Py_None);
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
__pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_13 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
if (__pyx_t_2) {
__pyx_v_match_found = 1;
goto __pyx_L34;
}
/*else*/ {
__pyx_v_match_found = 0;
goto __pyx_L32_break;
}
__pyx_L34:;
}
}
__pyx_L32_break:;
__pyx_t_2 = (__pyx_v_match_found != 0);
if (__pyx_t_2) {
__pyx_t_18 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 1414, __pyx_L1_error)
}
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
__pyx_t_3 = ((!__pyx_t_2) != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_Raise(__pyx_t_6, 0, 0, 0);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__PYX_ERR(0, 1414, __pyx_L1_error)
}
__pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1414, __pyx_L1_error)
__pyx_t_3 = ((__pyx_t_9 > 1) != 0);
if (__pyx_t_3) {
__pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_Raise(__pyx_t_6, 0, 0, 0);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__PYX_ERR(0, 1414, __pyx_L1_error)
}
/*else*/ {
__Pyx_XDECREF(__pyx_r);
if (unlikely(__pyx_v_signatures == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 1414, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), PyList_GET_ITEM(__pyx_v_candidates, 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_r = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L0;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_AddTraceback("pyrost.bin.pyrost.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_dest_sig);
__Pyx_XDECREF(__pyx_v_ndarray);
__Pyx_XDECREF(__pyx_v_arg);
__Pyx_XDECREF(__pyx_v_dtype);
__Pyx_XDECREF(__pyx_v_arg_base);
__Pyx_XDECREF(__pyx_v_candidates);
__Pyx_XDECREF(__pyx_v_sig);
__Pyx_XDECREF(__pyx_v_src_sig);
__Pyx_XDECREF(__pyx_v_dst_type);
__Pyx_XDECREF(__pyx_v_kwargs);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_292__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_int(__Pyx_CyFunction_Defaults(__pyx_defaults82, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyArrayObject *__pyx_fuse_0__pyx_pw_6pyrost_3bin_6pyrost_123ct_integrate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_6pyrost_3bin_6pyrost_123ct_integrate = {"__pyx_fuse_0ct_integrate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0__pyx_pw_6pyrost_3bin_6pyrost_123ct_integrate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_20ct_integrate};
static PyArrayObject *__pyx_fuse_0__pyx_pw_6pyrost_3bin_6pyrost_123ct_integrate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_sy_arr = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_sx_arr = { 0, 0, { 0 }, { 0 }, { 0 } };
int __pyx_v_num_threads;
PyArrayObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("ct_integrate (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sy_arr,&__pyx_n_s_sx_arr,&__pyx_n_s_num_threads,0};
PyObject* values[3] = {0,0,0};
__pyx_defaults82 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults82, __pyx_self);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sy_arr)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sx_arr)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ct_integrate", 0, 2, 3, 1); __PYX_ERR(0, 1414, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[2] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ct_integrate") < 0)) __PYX_ERR(0, 1414, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_sy_arr = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_sy_arr.memview)) __PYX_ERR(0, 1414, __pyx_L3_error)
__pyx_v_sx_arr = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_sx_arr.memview)) __PYX_ERR(0, 1414, __pyx_L3_error)
if (values[2]) {
__pyx_v_num_threads = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_num_threads == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1414, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("ct_integrate", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1414, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.ct_integrate", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_sy_arr.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "sy_arr"); __PYX_ERR(0, 1414, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_sx_arr.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "sx_arr"); __PYX_ERR(0, 1414, __pyx_L1_error)
}
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_122ct_integrate(__pyx_self, __pyx_v_sy_arr, __pyx_v_sx_arr, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyArrayObject *__pyx_pf_6pyrost_3bin_6pyrost_122ct_integrate(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_sy_arr, __Pyx_memviewslice __pyx_v_sx_arr, int __pyx_v_num_threads) {
CYTHON_UNUSED int __pyx_v_type_num;
npy_intp __pyx_v_a;
npy_intp __pyx_v_b;
int __pyx_v_i;
int __pyx_v_j;
npy_intp *__pyx_v_asdi_shape;
PyArrayObject *__pyx_v_sfy_asdi = 0;
struct __pyx_obj_6pyrost_3bin_6pyfftw_FFTW *__pyx_v_fftw_obj = 0;
PyArrayObject *__pyx_v_sfx_asdi = 0;
struct __pyx_obj_6pyrost_3bin_6pyfftw_FFTW *__pyx_v_ifftw_obj = 0;
double __pyx_v_xf;
double __pyx_v_yf;
double __pyx_v_norm;
__Pyx_LocalBuf_ND __pyx_pybuffernd_sfx_asdi;
__Pyx_Buffer __pyx_pybuffer_sfx_asdi;
__Pyx_LocalBuf_ND __pyx_pybuffernd_sfy_asdi;
__Pyx_Buffer __pyx_pybuffer_sfy_asdi;
PyArrayObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_0ct_integrate", 0);
__pyx_pybuffer_sfy_asdi.pybuffer.buf = NULL;
__pyx_pybuffer_sfy_asdi.refcount = 0;
__pyx_pybuffernd_sfy_asdi.data = NULL;
__pyx_pybuffernd_sfy_asdi.rcbuffer = &__pyx_pybuffer_sfy_asdi;
__pyx_pybuffer_sfx_asdi.pybuffer.buf = NULL;
__pyx_pybuffer_sfx_asdi.refcount = 0;
__pyx_pybuffernd_sfx_asdi.data = NULL;
__pyx_pybuffernd_sfx_asdi.rcbuffer = &__pyx_pybuffer_sfx_asdi;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_23);
__Pyx_XDECREF(__pyx_t_24);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("pyrost.bin.pyrost.ct_integrate", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer);
__pyx_L2:;
__Pyx_XDECREF((PyObject *)__pyx_v_sfy_asdi);
__Pyx_XDECREF((PyObject *)__pyx_v_fftw_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_sfx_asdi);
__Pyx_XDECREF((PyObject *)__pyx_v_ifftw_obj);
__PYX_XDEC_MEMVIEW(&__pyx_v_sy_arr, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_sx_arr, 1);
__Pyx_XGIVEREF((PyObject *)__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_294__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
__pyx_t_1 = __Pyx_PyInt_From_int(__Pyx_CyFunction_Defaults(__pyx_defaults83, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
__pyx_t_2 = 0;
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("pyrost.bin.pyrost.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyArrayObject *__pyx_fuse_1__pyx_pw_6pyrost_3bin_6pyrost_125ct_integrate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_6pyrost_3bin_6pyrost_125ct_integrate = {"__pyx_fuse_1ct_integrate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1__pyx_pw_6pyrost_3bin_6pyrost_125ct_integrate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_20ct_integrate};
static PyArrayObject *__pyx_fuse_1__pyx_pw_6pyrost_3bin_6pyrost_125ct_integrate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_sy_arr = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_sx_arr = { 0, 0, { 0 }, { 0 }, { 0 } };
int __pyx_v_num_threads;
PyArrayObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("ct_integrate (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sy_arr,&__pyx_n_s_sx_arr,&__pyx_n_s_num_threads,0};
PyObject* values[3] = {0,0,0};
__pyx_defaults83 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults83, __pyx_self);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sy_arr)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sx_arr)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ct_integrate", 0, 2, 3, 1); __PYX_ERR(0, 1414, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[2] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ct_integrate") < 0)) __PYX_ERR(0, 1414, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_sy_arr = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_sy_arr.memview)) __PYX_ERR(0, 1414, __pyx_L3_error)
__pyx_v_sx_arr = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_sx_arr.memview)) __PYX_ERR(0, 1414, __pyx_L3_error)
if (values[2]) {
__pyx_v_num_threads = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_num_threads == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1414, __pyx_L3_error)
} else {
__pyx_v_num_threads = __pyx_dynamic_args->__pyx_arg_num_threads;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("ct_integrate", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1414, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("pyrost.bin.pyrost.ct_integrate", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(((PyObject *)__pyx_v_sy_arr.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "sy_arr"); __PYX_ERR(0, 1414, __pyx_L1_error)
}
if (unlikely(((PyObject *)__pyx_v_sx_arr.memview) == Py_None)) {
PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "sx_arr"); __PYX_ERR(0, 1414, __pyx_L1_error)
}
__pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_124ct_integrate(__pyx_self, __pyx_v_sy_arr, __pyx_v_sx_arr, __pyx_v_num_threads);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyArrayObject *__pyx_pf_6pyrost_3bin_6pyrost_124ct_integrate(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_sy_arr, __Pyx_memviewslice __pyx_v_sx_arr, int __pyx_v_num_threads) {
CYTHON_UNUSED int __pyx_v_type_num;
npy_intp __pyx_v_a;
npy_intp __pyx_v_b;
int __pyx_v_i;
int __pyx_v_j;
npy_intp *__pyx_v_asdi_shape;
PyArrayObject *__pyx_v_sfy_asdi = 0;
struct __pyx_obj_6pyrost_3bin_6pyfftw_FFTW *__pyx_v_fftw_obj = 0;
PyArrayObject *__pyx_v_sfx_asdi = 0;
struct __pyx_obj_6pyrost_3bin_6pyfftw_FFTW *__pyx_v_ifftw_obj = 0;
double __pyx_v_xf;
double __pyx_v_yf;
double __pyx_v_norm;
__Pyx_LocalBuf_ND __pyx_pybuffernd_sfx_asdi;
__Pyx_Buffer __pyx_pybuffer_sfx_asdi;
__Pyx_LocalBuf_ND __pyx_pybuffernd_sfy_asdi;
__Pyx_Buffer __pyx_pybuffer_sfy_asdi;
PyArrayObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__pyx_fuse_1ct_integrate", 0);
__pyx_pybuffer_sfy_asdi.pybuffer.buf = NULL;
__pyx_pybuffer_sfy_asdi.refcount = 0;
__pyx_pybuffernd_sfy_asdi.data = NULL;
__pyx_pybuffernd_sfy_asdi.rcbuffer = &__pyx_pybuffer_sfy_asdi;
__pyx_pybuffer_sfx_asdi.pybuffer.buf = NULL;
__pyx_pybuffer_sfx_asdi.refcount = 0;
__pyx_pybuffernd_sfx_asdi.data = NULL;
__pyx_pybuffernd_sfx_asdi.rcbuffer = &__pyx_pybuffer_sfx_asdi;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_23);
__Pyx_XDECREF(__pyx_t_24);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("pyrost.bin.pyrost.ct_integrate", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer);
__pyx_L2:;
__Pyx_XDECREF((PyObject *)__pyx_v_sfy_asdi);
__Pyx_XDECREF((PyObject *)__pyx_v_fftw_obj);
__Pyx_XDECREF((PyObject *)__pyx_v_sfx_asdi);
__Pyx_XDECREF((PyObject *)__pyx_v_ifftw_obj);
__PYX_XDEC_MEMVIEW(&__pyx_v_sy_arr, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_sx_arr, 1);
__Pyx_XGIVEREF((PyObject *)__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_4 = __Pyx_PyInt_From_long(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GIVEREF(__pyx_t_4);
PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
__pyx_t_4 = 0;
/* … */
__pyx_tuple__53 = PyTuple_Pack(18, __pyx_n_s_sy_arr, __pyx_n_s_sx_arr, __pyx_n_s_num_threads, __pyx_n_s_type_num, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_ii, __pyx_n_s_jj, __pyx_n_s_asdi_shape, __pyx_n_s_sfy_asdi, __pyx_n_s_fftw_obj, __pyx_n_s_sfx_asdi, __pyx_n_s_ifftw_obj, __pyx_n_s_xf, __pyx_n_s_yf, __pyx_n_s_norm); if (unlikely(!__pyx_tuple__53)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__53);
__Pyx_GIVEREF(__pyx_tuple__53);
__pyx_t_4 = __Pyx_PyInt_From_long(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_k__10 = __pyx_t_4;
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_4 = 0;
__pyx_t_4 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_return, __pyx_n_u_ndarray) < 0) __PYX_ERR(0, 1414, __pyx_L1_error)
__pyx_t_2 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_6pyrost_3bin_6pyrost_123ct_integrate, 0, __pyx_n_s_ct_integrate, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_2, sizeof(__pyx_defaults82), 0)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_CyFunction_Defaults(__pyx_defaults82, __pyx_t_2)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_5);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_2, __pyx_pf_6pyrost_3bin_6pyrost_292__defaults__);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_float64_t, __pyx_t_2) < 0) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_return, __pyx_n_u_ndarray) < 0) __PYX_ERR(0, 1414, __pyx_L1_error)
__pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_6pyrost_3bin_6pyrost_125ct_integrate, 0, __pyx_n_s_ct_integrate, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults83), 0)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_CyFunction_Defaults(__pyx_defaults83, __pyx_t_1)->__pyx_arg_num_threads = 1;
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_5);
__Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pyrost_3bin_6pyrost_294__defaults__);
__Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_float32_t, __pyx_t_1) < 0) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_6pyrost_3bin_6pyrost_21ct_integrate, 0, __pyx_n_s_ct_integrate, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_5);
((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_4;
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_4 = 0;
if (PyDict_SetItem(__pyx_d, __pyx_n_s_ct_integrate, __pyx_t_1) < 0) __PYX_ERR(0, 1414, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_codeobj__54 = (PyObject*)__Pyx_PyCode_New(3, 0, 18, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__53, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pyrost_bin_pyrost_pyx, __pyx_n_s_ct_integrate, 1414, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__54)) __PYX_ERR(0, 1414, __pyx_L1_error)
1415: """Perform the Fourier Transform wavefront reconstruction [FTI]_ with
1416: antisymmetric derivative integration [ASDI]_.
1417:
1418: Args:
1419: sx_arr (numpy.ndarray) : of gradient values along the horizontal axis.
1420: sy_arr (numpy.ndarray) : Array of gradient values along the vertical axis.
1421: num_threads (int) : Number of threads.
1422:
1423: Returns:
1424: numpy.ndarray : Reconstructed wavefront.
1425:
1426: References:
1427: .. [FTI] C. Kottler, C. David, F. Pfeiffer, and O. Bunk,
1428: "A two-directional approach for grating based
1429: differential phase contrast imaging using hard x-rays,"
1430: Opt. Express 15, 1175-1181 (2007).
1431: .. [ASDI] Pierre Bon, Serge Monneret, and Benoit Wattellier,
1432: "Noniterative boundary-artifact-free wavefront
1433: reconstruction from its derivatives," Appl. Opt. 51,
1434: 5698-5704 (2012).
1435: """
+1436: cdef int type_num = np.PyArray_TYPE(sx_arr.base)
__pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_sx_arr, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_base); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1436, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_2)); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_sx_arr, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_base); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1436, __pyx_L1_error) __pyx_v_type_num = PyArray_TYPE(((PyArrayObject *)__pyx_t_2)); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1437: cdef np.npy_intp a = sx_arr.shape[0], b = sx_arr.shape[1]
__pyx_v_a = (__pyx_v_sx_arr.shape[0]); __pyx_v_b = (__pyx_v_sx_arr.shape[1]); /* … */ __pyx_v_a = (__pyx_v_sx_arr.shape[0]); __pyx_v_b = (__pyx_v_sx_arr.shape[1]);
1438: cdef int i, j, ii, jj
+1439: cdef np.npy_intp *asdi_shape = [2 * a, 2 * b]
__pyx_t_3[0] = (2 * __pyx_v_a); __pyx_t_3[1] = (2 * __pyx_v_b); __pyx_v_asdi_shape = __pyx_t_3; /* … */ __pyx_t_3[0] = (2 * __pyx_v_a); __pyx_t_3[1] = (2 * __pyx_v_b); __pyx_v_asdi_shape = __pyx_t_3;
1440:
+1441: cdef np.ndarray[np.complex128_t, ndim=2] sfy_asdi = np.PyArray_SimpleNew(2, asdi_shape, np.NPY_COMPLEX128)
__pyx_t_2 = PyArray_SimpleNew(2, __pyx_v_asdi_shape, NPY_COMPLEX128); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1441, __pyx_L1_error) __pyx_t_4 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer, (PyObject*)__pyx_t_4, &__Pyx_TypeInfo___pyx_t_double_complex, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { __pyx_v_sfy_asdi = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 1441, __pyx_L1_error) } else {__pyx_pybuffernd_sfy_asdi.diminfo[0].strides = __pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_sfy_asdi.diminfo[0].shape = __pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_sfy_asdi.diminfo[1].strides = __pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_sfy_asdi.diminfo[1].shape = __pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer.shape[1]; } } __pyx_t_4 = 0; __pyx_v_sfy_asdi = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_t_2 = PyArray_SimpleNew(2, __pyx_v_asdi_shape, NPY_COMPLEX128); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1441, __pyx_L1_error) __pyx_t_4 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer, (PyObject*)__pyx_t_4, &__Pyx_TypeInfo___pyx_t_double_complex, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { __pyx_v_sfy_asdi = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 1441, __pyx_L1_error) } else {__pyx_pybuffernd_sfy_asdi.diminfo[0].strides = __pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_sfy_asdi.diminfo[0].shape = __pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_sfy_asdi.diminfo[1].strides = __pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_sfy_asdi.diminfo[1].shape = __pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer.shape[1]; } } __pyx_t_4 = 0; __pyx_v_sfy_asdi = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0;
+1442: cdef pyfftw.FFTW fftw_obj = pyfftw.FFTW(sfy_asdi, sfy_asdi, axes=(0, 1), threads=num_threads)
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_sfy_asdi)); __Pyx_GIVEREF(((PyObject *)__pyx_v_sfy_asdi)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_sfy_asdi)); __Pyx_INCREF(((PyObject *)__pyx_v_sfy_asdi)); __Pyx_GIVEREF(((PyObject *)__pyx_v_sfy_asdi)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_sfy_asdi)); __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_axes, __pyx_tuple__11) < 0) __PYX_ERR(0, 1442, __pyx_L1_error) __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_num_threads); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_threads, __pyx_t_5) < 0) __PYX_ERR(0, 1442, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6pyrost_3bin_6pyfftw_FFTW), __pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_fftw_obj = ((struct __pyx_obj_6pyrost_3bin_6pyfftw_FFTW *)__pyx_t_5); __pyx_t_5 = 0; /* … */ __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_sfy_asdi)); __Pyx_GIVEREF(((PyObject *)__pyx_v_sfy_asdi)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_sfy_asdi)); __Pyx_INCREF(((PyObject *)__pyx_v_sfy_asdi)); __Pyx_GIVEREF(((PyObject *)__pyx_v_sfy_asdi)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_sfy_asdi)); __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_axes, __pyx_tuple__11) < 0) __PYX_ERR(0, 1442, __pyx_L1_error) __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_num_threads); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_threads, __pyx_t_5) < 0) __PYX_ERR(0, 1442, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6pyrost_3bin_6pyfftw_FFTW), __pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_fftw_obj = ((struct __pyx_obj_6pyrost_3bin_6pyfftw_FFTW *)__pyx_t_5); __pyx_t_5 = 0; /* … */ __pyx_tuple__11 = PyTuple_Pack(2, __pyx_int_0, __pyx_int_1); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(0, 1442, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__11); __Pyx_GIVEREF(__pyx_tuple__11);
+1443: for i in range(a):
__pyx_t_6 = __pyx_v_a;
__pyx_t_7 = __pyx_t_6;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_v_i = __pyx_t_8;
/* … */
__pyx_t_6 = __pyx_v_a;
__pyx_t_7 = __pyx_t_6;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_v_i = __pyx_t_8;
+1444: for j in range(b):
__pyx_t_9 = __pyx_v_b;
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_j = __pyx_t_11;
/* … */
__pyx_t_9 = __pyx_v_b;
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_j = __pyx_t_11;
+1445: sfy_asdi[i, j] = -sy_arr[a - i - 1, b - j - 1]
__pyx_t_12 = ((__pyx_v_a - __pyx_v_i) - 1);
__pyx_t_13 = ((__pyx_v_b - __pyx_v_j) - 1);
__pyx_t_14 = __pyx_v_i;
__pyx_t_15 = __pyx_v_j;
*__Pyx_BufPtrStrided2d(__pyx_t_double_complex *, __pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer.buf, __pyx_t_14, __pyx_pybuffernd_sfy_asdi.diminfo[0].strides, __pyx_t_15, __pyx_pybuffernd_sfy_asdi.diminfo[1].strides) = __pyx_t_double_complex_from_parts((-(*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_sy_arr.data + __pyx_t_12 * __pyx_v_sy_arr.strides[0]) )) + __pyx_t_13)) )))), 0);
}
}
/* … */
__pyx_t_12 = ((__pyx_v_a - __pyx_v_i) - 1);
__pyx_t_13 = ((__pyx_v_b - __pyx_v_j) - 1);
__pyx_t_14 = __pyx_v_i;
__pyx_t_15 = __pyx_v_j;
*__Pyx_BufPtrStrided2d(__pyx_t_double_complex *, __pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer.buf, __pyx_t_14, __pyx_pybuffernd_sfy_asdi.diminfo[0].strides, __pyx_t_15, __pyx_pybuffernd_sfy_asdi.diminfo[1].strides) = __pyx_t_double_complex_from_parts((-(*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_sy_arr.data + __pyx_t_12 * __pyx_v_sy_arr.strides[0]) )) + __pyx_t_13)) )))), 0);
}
}
+1446: for i in range(a):
__pyx_t_6 = __pyx_v_a;
__pyx_t_7 = __pyx_t_6;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_v_i = __pyx_t_8;
/* … */
__pyx_t_6 = __pyx_v_a;
__pyx_t_7 = __pyx_t_6;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_v_i = __pyx_t_8;
+1447: for j in range(b):
__pyx_t_9 = __pyx_v_b;
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_j = __pyx_t_11;
/* … */
__pyx_t_9 = __pyx_v_b;
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_j = __pyx_t_11;
+1448: sfy_asdi[i + a, j] = sy_arr[i, b - j - 1]
__pyx_t_13 = __pyx_v_i;
__pyx_t_12 = ((__pyx_v_b - __pyx_v_j) - 1);
__pyx_t_15 = (__pyx_v_i + __pyx_v_a);
__pyx_t_14 = __pyx_v_j;
*__Pyx_BufPtrStrided2d(__pyx_t_double_complex *, __pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_sfy_asdi.diminfo[0].strides, __pyx_t_14, __pyx_pybuffernd_sfy_asdi.diminfo[1].strides) = __pyx_t_double_complex_from_parts((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_sy_arr.data + __pyx_t_13 * __pyx_v_sy_arr.strides[0]) )) + __pyx_t_12)) ))), 0);
}
}
/* … */
__pyx_t_13 = __pyx_v_i;
__pyx_t_12 = ((__pyx_v_b - __pyx_v_j) - 1);
__pyx_t_15 = (__pyx_v_i + __pyx_v_a);
__pyx_t_14 = __pyx_v_j;
*__Pyx_BufPtrStrided2d(__pyx_t_double_complex *, __pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_sfy_asdi.diminfo[0].strides, __pyx_t_14, __pyx_pybuffernd_sfy_asdi.diminfo[1].strides) = __pyx_t_double_complex_from_parts((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_sy_arr.data + __pyx_t_13 * __pyx_v_sy_arr.strides[0]) )) + __pyx_t_12)) ))), 0);
}
}
+1449: for i in range(a):
__pyx_t_6 = __pyx_v_a;
__pyx_t_7 = __pyx_t_6;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_v_i = __pyx_t_8;
/* … */
__pyx_t_6 = __pyx_v_a;
__pyx_t_7 = __pyx_t_6;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_v_i = __pyx_t_8;
+1450: for j in range(b):
__pyx_t_9 = __pyx_v_b;
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_j = __pyx_t_11;
/* … */
__pyx_t_9 = __pyx_v_b;
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_j = __pyx_t_11;
+1451: sfy_asdi[i, j + b] = -sy_arr[a - i - 1, j]
__pyx_t_12 = ((__pyx_v_a - __pyx_v_i) - 1);
__pyx_t_13 = __pyx_v_j;
__pyx_t_14 = __pyx_v_i;
__pyx_t_15 = (__pyx_v_j + __pyx_v_b);
*__Pyx_BufPtrStrided2d(__pyx_t_double_complex *, __pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer.buf, __pyx_t_14, __pyx_pybuffernd_sfy_asdi.diminfo[0].strides, __pyx_t_15, __pyx_pybuffernd_sfy_asdi.diminfo[1].strides) = __pyx_t_double_complex_from_parts((-(*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_sy_arr.data + __pyx_t_12 * __pyx_v_sy_arr.strides[0]) )) + __pyx_t_13)) )))), 0);
}
}
/* … */
__pyx_t_12 = ((__pyx_v_a - __pyx_v_i) - 1);
__pyx_t_13 = __pyx_v_j;
__pyx_t_14 = __pyx_v_i;
__pyx_t_15 = (__pyx_v_j + __pyx_v_b);
*__Pyx_BufPtrStrided2d(__pyx_t_double_complex *, __pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer.buf, __pyx_t_14, __pyx_pybuffernd_sfy_asdi.diminfo[0].strides, __pyx_t_15, __pyx_pybuffernd_sfy_asdi.diminfo[1].strides) = __pyx_t_double_complex_from_parts((-(*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_sy_arr.data + __pyx_t_12 * __pyx_v_sy_arr.strides[0]) )) + __pyx_t_13)) )))), 0);
}
}
+1452: for i in range(a):
__pyx_t_6 = __pyx_v_a;
__pyx_t_7 = __pyx_t_6;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_v_i = __pyx_t_8;
/* … */
__pyx_t_6 = __pyx_v_a;
__pyx_t_7 = __pyx_t_6;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_v_i = __pyx_t_8;
+1453: for j in range(b):
__pyx_t_9 = __pyx_v_b;
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_j = __pyx_t_11;
/* … */
__pyx_t_9 = __pyx_v_b;
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_j = __pyx_t_11;
+1454: sfy_asdi[i + a, j + b] = sy_arr[i, j]
__pyx_t_13 = __pyx_v_i;
__pyx_t_12 = __pyx_v_j;
__pyx_t_15 = (__pyx_v_i + __pyx_v_a);
__pyx_t_14 = (__pyx_v_j + __pyx_v_b);
*__Pyx_BufPtrStrided2d(__pyx_t_double_complex *, __pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_sfy_asdi.diminfo[0].strides, __pyx_t_14, __pyx_pybuffernd_sfy_asdi.diminfo[1].strides) = __pyx_t_double_complex_from_parts((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_sy_arr.data + __pyx_t_13 * __pyx_v_sy_arr.strides[0]) )) + __pyx_t_12)) ))), 0);
}
}
/* … */
__pyx_t_13 = __pyx_v_i;
__pyx_t_12 = __pyx_v_j;
__pyx_t_15 = (__pyx_v_i + __pyx_v_a);
__pyx_t_14 = (__pyx_v_j + __pyx_v_b);
*__Pyx_BufPtrStrided2d(__pyx_t_double_complex *, __pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_sfy_asdi.diminfo[0].strides, __pyx_t_14, __pyx_pybuffernd_sfy_asdi.diminfo[1].strides) = __pyx_t_double_complex_from_parts((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_sy_arr.data + __pyx_t_13 * __pyx_v_sy_arr.strides[0]) )) + __pyx_t_12)) ))), 0);
}
}
+1455: fftw_obj._execute()
__pyx_t_5 = __pyx_f_6pyrost_3bin_6pyfftw_4FFTW__execute(__pyx_v_fftw_obj); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* … */ __pyx_t_5 = __pyx_f_6pyrost_3bin_6pyfftw_4FFTW__execute(__pyx_v_fftw_obj); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
1456:
+1457: cdef np.ndarray[np.complex128_t, ndim=2] sfx_asdi = np.PyArray_SimpleNew(2, asdi_shape, np.NPY_COMPLEX128)
__pyx_t_5 = PyArray_SimpleNew(2, __pyx_v_asdi_shape, NPY_COMPLEX128); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1457, __pyx_L1_error) __pyx_t_16 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer, (PyObject*)__pyx_t_16, &__Pyx_TypeInfo___pyx_t_double_complex, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { __pyx_v_sfx_asdi = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 1457, __pyx_L1_error) } else {__pyx_pybuffernd_sfx_asdi.diminfo[0].strides = __pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_sfx_asdi.diminfo[0].shape = __pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_sfx_asdi.diminfo[1].strides = __pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_sfx_asdi.diminfo[1].shape = __pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer.shape[1]; } } __pyx_t_16 = 0; __pyx_v_sfx_asdi = ((PyArrayObject *)__pyx_t_5); __pyx_t_5 = 0; /* … */ __pyx_t_5 = PyArray_SimpleNew(2, __pyx_v_asdi_shape, NPY_COMPLEX128); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1457, __pyx_L1_error) __pyx_t_16 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer, (PyObject*)__pyx_t_16, &__Pyx_TypeInfo___pyx_t_double_complex, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { __pyx_v_sfx_asdi = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 1457, __pyx_L1_error) } else {__pyx_pybuffernd_sfx_asdi.diminfo[0].strides = __pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_sfx_asdi.diminfo[0].shape = __pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_sfx_asdi.diminfo[1].strides = __pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_sfx_asdi.diminfo[1].shape = __pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer.shape[1]; } } __pyx_t_16 = 0; __pyx_v_sfx_asdi = ((PyArrayObject *)__pyx_t_5); __pyx_t_5 = 0;
+1458: fftw_obj._update_arrays(sfx_asdi, sfx_asdi)
__pyx_t_5 = __pyx_f_6pyrost_3bin_6pyfftw_4FFTW__update_arrays(__pyx_v_fftw_obj, ((PyArrayObject *)__pyx_v_sfx_asdi), ((PyArrayObject *)__pyx_v_sfx_asdi)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* … */ __pyx_t_5 = __pyx_f_6pyrost_3bin_6pyfftw_4FFTW__update_arrays(__pyx_v_fftw_obj, ((PyArrayObject *)__pyx_v_sfx_asdi), ((PyArrayObject *)__pyx_v_sfx_asdi)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1459: for i in range(a):
__pyx_t_6 = __pyx_v_a;
__pyx_t_7 = __pyx_t_6;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_v_i = __pyx_t_8;
/* … */
__pyx_t_6 = __pyx_v_a;
__pyx_t_7 = __pyx_t_6;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_v_i = __pyx_t_8;
+1460: for j in range(b):
__pyx_t_9 = __pyx_v_b;
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_j = __pyx_t_11;
/* … */
__pyx_t_9 = __pyx_v_b;
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_j = __pyx_t_11;
+1461: sfx_asdi[i, j] = -sx_arr[a - i - 1, b - j - 1]
__pyx_t_12 = ((__pyx_v_a - __pyx_v_i) - 1);
__pyx_t_13 = ((__pyx_v_b - __pyx_v_j) - 1);
__pyx_t_14 = __pyx_v_i;
__pyx_t_15 = __pyx_v_j;
*__Pyx_BufPtrStrided2d(__pyx_t_double_complex *, __pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer.buf, __pyx_t_14, __pyx_pybuffernd_sfx_asdi.diminfo[0].strides, __pyx_t_15, __pyx_pybuffernd_sfx_asdi.diminfo[1].strides) = __pyx_t_double_complex_from_parts((-(*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_sx_arr.data + __pyx_t_12 * __pyx_v_sx_arr.strides[0]) )) + __pyx_t_13)) )))), 0);
}
}
/* … */
__pyx_t_12 = ((__pyx_v_a - __pyx_v_i) - 1);
__pyx_t_13 = ((__pyx_v_b - __pyx_v_j) - 1);
__pyx_t_14 = __pyx_v_i;
__pyx_t_15 = __pyx_v_j;
*__Pyx_BufPtrStrided2d(__pyx_t_double_complex *, __pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer.buf, __pyx_t_14, __pyx_pybuffernd_sfx_asdi.diminfo[0].strides, __pyx_t_15, __pyx_pybuffernd_sfx_asdi.diminfo[1].strides) = __pyx_t_double_complex_from_parts((-(*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_sx_arr.data + __pyx_t_12 * __pyx_v_sx_arr.strides[0]) )) + __pyx_t_13)) )))), 0);
}
}
+1462: for i in range(a):
__pyx_t_6 = __pyx_v_a;
__pyx_t_7 = __pyx_t_6;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_v_i = __pyx_t_8;
/* … */
__pyx_t_6 = __pyx_v_a;
__pyx_t_7 = __pyx_t_6;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_v_i = __pyx_t_8;
+1463: for j in range(b):
__pyx_t_9 = __pyx_v_b;
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_j = __pyx_t_11;
/* … */
__pyx_t_9 = __pyx_v_b;
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_j = __pyx_t_11;
+1464: sfx_asdi[i + a, j] = -sx_arr[i, b - j - 1]
__pyx_t_13 = __pyx_v_i;
__pyx_t_12 = ((__pyx_v_b - __pyx_v_j) - 1);
__pyx_t_15 = (__pyx_v_i + __pyx_v_a);
__pyx_t_14 = __pyx_v_j;
*__Pyx_BufPtrStrided2d(__pyx_t_double_complex *, __pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_sfx_asdi.diminfo[0].strides, __pyx_t_14, __pyx_pybuffernd_sfx_asdi.diminfo[1].strides) = __pyx_t_double_complex_from_parts((-(*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_sx_arr.data + __pyx_t_13 * __pyx_v_sx_arr.strides[0]) )) + __pyx_t_12)) )))), 0);
}
}
/* … */
__pyx_t_13 = __pyx_v_i;
__pyx_t_12 = ((__pyx_v_b - __pyx_v_j) - 1);
__pyx_t_15 = (__pyx_v_i + __pyx_v_a);
__pyx_t_14 = __pyx_v_j;
*__Pyx_BufPtrStrided2d(__pyx_t_double_complex *, __pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_sfx_asdi.diminfo[0].strides, __pyx_t_14, __pyx_pybuffernd_sfx_asdi.diminfo[1].strides) = __pyx_t_double_complex_from_parts((-(*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_sx_arr.data + __pyx_t_13 * __pyx_v_sx_arr.strides[0]) )) + __pyx_t_12)) )))), 0);
}
}
+1465: for i in range(a):
__pyx_t_6 = __pyx_v_a;
__pyx_t_7 = __pyx_t_6;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_v_i = __pyx_t_8;
/* … */
__pyx_t_6 = __pyx_v_a;
__pyx_t_7 = __pyx_t_6;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_v_i = __pyx_t_8;
+1466: for j in range(b):
__pyx_t_9 = __pyx_v_b;
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_j = __pyx_t_11;
/* … */
__pyx_t_9 = __pyx_v_b;
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_j = __pyx_t_11;
+1467: sfx_asdi[i, j + b] = sx_arr[a - i - 1, j]
__pyx_t_12 = ((__pyx_v_a - __pyx_v_i) - 1);
__pyx_t_13 = __pyx_v_j;
__pyx_t_14 = __pyx_v_i;
__pyx_t_15 = (__pyx_v_j + __pyx_v_b);
*__Pyx_BufPtrStrided2d(__pyx_t_double_complex *, __pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer.buf, __pyx_t_14, __pyx_pybuffernd_sfx_asdi.diminfo[0].strides, __pyx_t_15, __pyx_pybuffernd_sfx_asdi.diminfo[1].strides) = __pyx_t_double_complex_from_parts((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_sx_arr.data + __pyx_t_12 * __pyx_v_sx_arr.strides[0]) )) + __pyx_t_13)) ))), 0);
}
}
/* … */
__pyx_t_12 = ((__pyx_v_a - __pyx_v_i) - 1);
__pyx_t_13 = __pyx_v_j;
__pyx_t_14 = __pyx_v_i;
__pyx_t_15 = (__pyx_v_j + __pyx_v_b);
*__Pyx_BufPtrStrided2d(__pyx_t_double_complex *, __pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer.buf, __pyx_t_14, __pyx_pybuffernd_sfx_asdi.diminfo[0].strides, __pyx_t_15, __pyx_pybuffernd_sfx_asdi.diminfo[1].strides) = __pyx_t_double_complex_from_parts((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_sx_arr.data + __pyx_t_12 * __pyx_v_sx_arr.strides[0]) )) + __pyx_t_13)) ))), 0);
}
}
+1468: for i in range(a):
__pyx_t_6 = __pyx_v_a;
__pyx_t_7 = __pyx_t_6;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_v_i = __pyx_t_8;
/* … */
__pyx_t_6 = __pyx_v_a;
__pyx_t_7 = __pyx_t_6;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_v_i = __pyx_t_8;
+1469: for j in range(b):
__pyx_t_9 = __pyx_v_b;
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_j = __pyx_t_11;
/* … */
__pyx_t_9 = __pyx_v_b;
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_j = __pyx_t_11;
+1470: sfx_asdi[i + a, j + b] = sx_arr[i, j]
__pyx_t_13 = __pyx_v_i;
__pyx_t_12 = __pyx_v_j;
__pyx_t_15 = (__pyx_v_i + __pyx_v_a);
__pyx_t_14 = (__pyx_v_j + __pyx_v_b);
*__Pyx_BufPtrStrided2d(__pyx_t_double_complex *, __pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_sfx_asdi.diminfo[0].strides, __pyx_t_14, __pyx_pybuffernd_sfx_asdi.diminfo[1].strides) = __pyx_t_double_complex_from_parts((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_sx_arr.data + __pyx_t_13 * __pyx_v_sx_arr.strides[0]) )) + __pyx_t_12)) ))), 0);
}
}
/* … */
__pyx_t_13 = __pyx_v_i;
__pyx_t_12 = __pyx_v_j;
__pyx_t_15 = (__pyx_v_i + __pyx_v_a);
__pyx_t_14 = (__pyx_v_j + __pyx_v_b);
*__Pyx_BufPtrStrided2d(__pyx_t_double_complex *, __pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_sfx_asdi.diminfo[0].strides, __pyx_t_14, __pyx_pybuffernd_sfx_asdi.diminfo[1].strides) = __pyx_t_double_complex_from_parts((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_sx_arr.data + __pyx_t_13 * __pyx_v_sx_arr.strides[0]) )) + __pyx_t_12)) ))), 0);
}
}
+1471: fftw_obj._execute()
__pyx_t_5 = __pyx_f_6pyrost_3bin_6pyfftw_4FFTW__execute(__pyx_v_fftw_obj); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* … */ __pyx_t_5 = __pyx_f_6pyrost_3bin_6pyfftw_4FFTW__execute(__pyx_v_fftw_obj); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
1472:
+1473: cdef pyfftw.FFTW ifftw_obj = pyfftw.FFTW(sfx_asdi, sfx_asdi, direction='FFTW_BACKWARD', axes=(0, 1), threads=num_threads)
__pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(((PyObject *)__pyx_v_sfx_asdi)); __Pyx_GIVEREF(((PyObject *)__pyx_v_sfx_asdi)); PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_sfx_asdi)); __Pyx_INCREF(((PyObject *)__pyx_v_sfx_asdi)); __Pyx_GIVEREF(((PyObject *)__pyx_v_sfx_asdi)); PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_sfx_asdi)); __pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_direction, __pyx_n_u_FFTW_BACKWARD) < 0) __PYX_ERR(0, 1473, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_axes, __pyx_tuple__11) < 0) __PYX_ERR(0, 1473, __pyx_L1_error) __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_num_threads); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_threads, __pyx_t_2) < 0) __PYX_ERR(0, 1473, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6pyrost_3bin_6pyfftw_FFTW), __pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_ifftw_obj = ((struct __pyx_obj_6pyrost_3bin_6pyfftw_FFTW *)__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(((PyObject *)__pyx_v_sfx_asdi)); __Pyx_GIVEREF(((PyObject *)__pyx_v_sfx_asdi)); PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_sfx_asdi)); __Pyx_INCREF(((PyObject *)__pyx_v_sfx_asdi)); __Pyx_GIVEREF(((PyObject *)__pyx_v_sfx_asdi)); PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_sfx_asdi)); __pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_direction, __pyx_n_u_FFTW_BACKWARD) < 0) __PYX_ERR(0, 1473, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_axes, __pyx_tuple__11) < 0) __PYX_ERR(0, 1473, __pyx_L1_error) __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_num_threads); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_threads, __pyx_t_2) < 0) __PYX_ERR(0, 1473, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6pyrost_3bin_6pyfftw_FFTW), __pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_ifftw_obj = ((struct __pyx_obj_6pyrost_3bin_6pyfftw_FFTW *)__pyx_t_2); __pyx_t_2 = 0;
+1474: cdef double xf, yf, norm = 1.0 / <double>np.PyArray_SIZE(sfx_asdi)
__pyx_v_norm = (1.0 / ((double)PyArray_SIZE(((PyArrayObject *)__pyx_v_sfx_asdi)))); /* … */ __pyx_v_norm = (1.0 / ((double)PyArray_SIZE(((PyArrayObject *)__pyx_v_sfx_asdi))));
+1475: for i in range(2 * a):
__pyx_t_17 = (2 * __pyx_v_a);
__pyx_t_18 = __pyx_t_17;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_18; __pyx_t_8+=1) {
__pyx_v_i = __pyx_t_8;
/* … */
__pyx_t_17 = (2 * __pyx_v_a);
__pyx_t_18 = __pyx_t_17;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_18; __pyx_t_8+=1) {
__pyx_v_i = __pyx_t_8;
+1476: yf = 0.5 * <double>i / a - i // a
__pyx_v_yf = (((0.5 * ((double)__pyx_v_i)) / ((double)__pyx_v_a)) - (__pyx_v_i / __pyx_v_a));
/* … */
__pyx_v_yf = (((0.5 * ((double)__pyx_v_i)) / ((double)__pyx_v_a)) - (__pyx_v_i / __pyx_v_a));
+1477: for j in range(2 * b):
__pyx_t_19 = (2 * __pyx_v_b);
__pyx_t_20 = __pyx_t_19;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_20; __pyx_t_11+=1) {
__pyx_v_j = __pyx_t_11;
/* … */
__pyx_t_19 = (2 * __pyx_v_b);
__pyx_t_20 = __pyx_t_19;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_20; __pyx_t_11+=1) {
__pyx_v_j = __pyx_t_11;
+1478: xf = 0.5 * <double>j / b - j // b
__pyx_v_xf = (((0.5 * ((double)__pyx_v_j)) / ((double)__pyx_v_b)) - (__pyx_v_j / __pyx_v_b));
/* … */
__pyx_v_xf = (((0.5 * ((double)__pyx_v_j)) / ((double)__pyx_v_b)) - (__pyx_v_j / __pyx_v_b));
+1479: sfx_asdi[i, j] = norm * (sfy_asdi[i, j] * yf + sfx_asdi[i, j] * xf) / (2j * pi * (xf * xf + yf * yf))
__pyx_t_12 = __pyx_v_i;
__pyx_t_13 = __pyx_v_j;
__pyx_t_14 = __pyx_v_i;
__pyx_t_15 = __pyx_v_j;
__pyx_t_21 = __pyx_v_i;
__pyx_t_22 = __pyx_v_j;
*__Pyx_BufPtrStrided2d(__pyx_t_double_complex *, __pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_sfx_asdi.diminfo[0].strides, __pyx_t_22, __pyx_pybuffernd_sfx_asdi.diminfo[1].strides) = __Pyx_c_quot_double(__Pyx_c_prod_double(__pyx_t_double_complex_from_parts(__pyx_v_norm, 0), __Pyx_c_sum_double(__Pyx_c_prod_double((*__Pyx_BufPtrStrided2d(__pyx_t_double_complex *, __pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer.buf, __pyx_t_12, __pyx_pybuffernd_sfy_asdi.diminfo[0].strides, __pyx_t_13, __pyx_pybuffernd_sfy_asdi.diminfo[1].strides)), __pyx_t_double_complex_from_parts(__pyx_v_yf, 0)), __Pyx_c_prod_double((*__Pyx_BufPtrStrided2d(__pyx_t_double_complex *, __pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer.buf, __pyx_t_14, __pyx_pybuffernd_sfx_asdi.diminfo[0].strides, __pyx_t_15, __pyx_pybuffernd_sfx_asdi.diminfo[1].strides)), __pyx_t_double_complex_from_parts(__pyx_v_xf, 0)))), __Pyx_c_prod_double(__Pyx_c_prod_double(__pyx_t_double_complex_from_parts(0, 2.0), __pyx_t_double_complex_from_parts(M_PI, 0)), __pyx_t_double_complex_from_parts(((__pyx_v_xf * __pyx_v_xf) + (__pyx_v_yf * __pyx_v_yf)), 0)));
}
}
/* … */
__pyx_t_12 = __pyx_v_i;
__pyx_t_13 = __pyx_v_j;
__pyx_t_14 = __pyx_v_i;
__pyx_t_15 = __pyx_v_j;
__pyx_t_21 = __pyx_v_i;
__pyx_t_22 = __pyx_v_j;
*__Pyx_BufPtrStrided2d(__pyx_t_double_complex *, __pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_sfx_asdi.diminfo[0].strides, __pyx_t_22, __pyx_pybuffernd_sfx_asdi.diminfo[1].strides) = __Pyx_c_quot_double(__Pyx_c_prod_double(__pyx_t_double_complex_from_parts(__pyx_v_norm, 0), __Pyx_c_sum_double(__Pyx_c_prod_double((*__Pyx_BufPtrStrided2d(__pyx_t_double_complex *, __pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer.buf, __pyx_t_12, __pyx_pybuffernd_sfy_asdi.diminfo[0].strides, __pyx_t_13, __pyx_pybuffernd_sfy_asdi.diminfo[1].strides)), __pyx_t_double_complex_from_parts(__pyx_v_yf, 0)), __Pyx_c_prod_double((*__Pyx_BufPtrStrided2d(__pyx_t_double_complex *, __pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer.buf, __pyx_t_14, __pyx_pybuffernd_sfx_asdi.diminfo[0].strides, __pyx_t_15, __pyx_pybuffernd_sfx_asdi.diminfo[1].strides)), __pyx_t_double_complex_from_parts(__pyx_v_xf, 0)))), __Pyx_c_prod_double(__Pyx_c_prod_double(__pyx_t_double_complex_from_parts(0, 2.0), __pyx_t_double_complex_from_parts(M_PI, 0)), __pyx_t_double_complex_from_parts(((__pyx_v_xf * __pyx_v_xf) + (__pyx_v_yf * __pyx_v_yf)), 0)));
}
}
+1480: sfx_asdi[0, 0] = 0.0 + 0.0j
__pyx_t_15 = 0; __pyx_t_14 = 0; *__Pyx_BufPtrStrided2d(__pyx_t_double_complex *, __pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_sfx_asdi.diminfo[0].strides, __pyx_t_14, __pyx_pybuffernd_sfx_asdi.diminfo[1].strides) = __Pyx_c_sum_double(__pyx_t_double_complex_from_parts(0.0, 0), __pyx_t_double_complex_from_parts(0, 0.0)); /* … */ __pyx_t_15 = 0; __pyx_t_14 = 0; *__Pyx_BufPtrStrided2d(__pyx_t_double_complex *, __pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_sfx_asdi.diminfo[0].strides, __pyx_t_14, __pyx_pybuffernd_sfx_asdi.diminfo[1].strides) = __Pyx_c_sum_double(__pyx_t_double_complex_from_parts(0.0, 0), __pyx_t_double_complex_from_parts(0, 0.0));
+1481: ifftw_obj._execute()
__pyx_t_2 = __pyx_f_6pyrost_3bin_6pyfftw_4FFTW__execute(__pyx_v_ifftw_obj); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_t_2 = __pyx_f_6pyrost_3bin_6pyfftw_4FFTW__execute(__pyx_v_ifftw_obj); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1482:
+1483: return np.asarray(sfx_asdi.real[a:, b:], dtype=sx_arr.base.dtype)
__Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_asarray); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_sfx_asdi), __pyx_n_s_real); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyInt_From_Py_intptr_t(__pyx_v_a); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_23 = PySlice_New(__pyx_t_5, Py_None, Py_None); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_23); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_From_Py_intptr_t(__pyx_v_b); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_24 = PySlice_New(__pyx_t_5, Py_None, Py_None); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_24); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_23); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_23); __Pyx_GIVEREF(__pyx_t_24); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_24); __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_24 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_24); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_24); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_24); __pyx_t_24 = 0; __pyx_t_24 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_24); __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_sx_arr, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_base); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_23); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_23, __pyx_n_s_dtype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; if (PyDict_SetItem(__pyx_t_24, __pyx_n_s_dtype, __pyx_t_2) < 0) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_24); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1483, __pyx_L1_error) __pyx_r = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_asarray); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_sfx_asdi), __pyx_n_s_real); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyInt_From_Py_intptr_t(__pyx_v_a); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_23 = PySlice_New(__pyx_t_5, Py_None, Py_None); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_23); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_From_Py_intptr_t(__pyx_v_b); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_24 = PySlice_New(__pyx_t_5, Py_None, Py_None); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_24); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_23); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_23); __Pyx_GIVEREF(__pyx_t_24); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_24); __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_24 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_24); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_24); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_24); __pyx_t_24 = 0; __pyx_t_24 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_24); __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_sx_arr, 2, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_base); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_23); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_23, __pyx_n_s_dtype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; if (PyDict_SetItem(__pyx_t_24, __pyx_n_s_dtype, __pyx_t_2) < 0) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_24); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1483, __pyx_L1_error) __pyx_r = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L0;