Generated by Cython 0.29.21
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
+001: cimport numpy as np
__pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+002: 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;
003: from libc.math cimport sqrt, exp, pi, floor, ceil
004: from cython.parallel import prange, parallel
005: from libc.stdlib cimport abort, malloc, free
006: cimport openmp
007:
008: ctypedef fused float_t:
009: np.float64_t
010: np.float32_t
011:
012: ctypedef np.uint64_t uint_t
013: ctypedef np.complex128_t complex_t
014:
015: DEF FLOAT_MAX = 1.7976931348623157e+308
016: DEF NO_VAR = -1.0
017:
+018: 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; }
019: cdef:
020: int i
+021: float_t mv = array[0]
__pyx_v_mv = (__pyx_v_array[0]); /* … */ __pyx_v_mv = (__pyx_v_array[0]);
+022: 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;
+023: 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) { /* … */ } }
+024: mv = array[i]
__pyx_v_mv = (__pyx_v_array[__pyx_v_i]); /* … */ __pyx_v_mv = (__pyx_v_array[__pyx_v_i]);
+025: return mv
__pyx_r = __pyx_v_mv; goto __pyx_L0; /* … */ __pyx_r = __pyx_v_mv; goto __pyx_L0;
026:
+027: 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; }
028: cdef:
029: int i
+030: float_t mv = array[0]
__pyx_v_mv = (__pyx_v_array[0]); /* … */ __pyx_v_mv = (__pyx_v_array[0]);
+031: 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;
+032: 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) { /* … */ } }
+033: mv = array[i]
__pyx_v_mv = (__pyx_v_array[__pyx_v_i]); /* … */ __pyx_v_mv = (__pyx_v_array[__pyx_v_i]);
+034: return mv
__pyx_r = __pyx_v_mv; goto __pyx_L0; /* … */ __pyx_r = __pyx_v_mv; goto __pyx_L0;
035:
+036: cdef float_t rbf(float_t dsq, float_t ls) nogil:
static __pyx_t_5numpy_float64_t __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_rbf(__pyx_t_5numpy_float64_t __pyx_v_dsq, __pyx_t_5numpy_float64_t __pyx_v_ls) { __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_rbf(__pyx_t_5numpy_float32_t __pyx_v_dsq, __pyx_t_5numpy_float32_t __pyx_v_ls) { __pyx_t_5numpy_float32_t __pyx_r; /* … */ /* function exit code */ __pyx_L0:; return __pyx_r; }
+037: return exp(-dsq / 2 / ls**2) / sqrt(2 * pi)
__pyx_r = (exp((((-__pyx_v_dsq) / 2.0) / pow(__pyx_v_ls, 2.0))) / sqrt((2.0 * M_PI))); goto __pyx_L0; /* … */ __pyx_r = (exp((((-__pyx_v_dsq) / 2.0) / powf(__pyx_v_ls, 2.0))) / sqrt((2.0 * M_PI))); goto __pyx_L0;
038:
+039: cdef void frame_reference(float_t[:, ::1] I0, float_t[:, ::1] w0, float_t[:, ::1] I, float_t[:, ::1] W,
static void __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_frame_reference(__Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_w0, __Pyx_memviewslice __pyx_v_I, __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, __pyx_t_5numpy_float64_t __pyx_v_ls) { int __pyx_v_b; int __pyx_v_c; 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_aa; int __pyx_v_bb; int __pyx_v_jj0; int __pyx_v_jj1; int __pyx_v_kk0; int __pyx_v_kk1; int __pyx_v_dn; __pyx_t_5numpy_float64_t __pyx_v_ss; __pyx_t_5numpy_float64_t __pyx_v_fs; __pyx_t_5numpy_float64_t __pyx_v_r; /* … */ /* function exit code */ } static void __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_frame_reference(__Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_w0, __Pyx_memviewslice __pyx_v_I, __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, __pyx_t_5numpy_float32_t __pyx_v_ls) { int __pyx_v_b; int __pyx_v_c; 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_aa; int __pyx_v_bb; int __pyx_v_jj0; int __pyx_v_jj1; int __pyx_v_kk0; int __pyx_v_kk1; int __pyx_v_dn; __pyx_t_5numpy_float32_t __pyx_v_ss; __pyx_t_5numpy_float32_t __pyx_v_fs; __pyx_t_5numpy_float32_t __pyx_v_r; /* … */ /* function exit code */ }
040: float_t[:, :, ::1] u, float_t di, float_t dj, float_t ls) nogil:
041: cdef:
+042: int b = I.shape[0], c = I.shape[1], j, k, jj, kk, j0, k0
__pyx_v_b = (__pyx_v_I.shape[0]); __pyx_v_c = (__pyx_v_I.shape[1]); /* … */ __pyx_v_b = (__pyx_v_I.shape[0]); __pyx_v_c = (__pyx_v_I.shape[1]);
+043: int aa = I0.shape[0], bb = I0.shape[1], jj0, jj1, kk0, kk1
__pyx_v_aa = (__pyx_v_I0.shape[0]); __pyx_v_bb = (__pyx_v_I0.shape[1]); /* … */ __pyx_v_aa = (__pyx_v_I0.shape[0]); __pyx_v_bb = (__pyx_v_I0.shape[1]);
+044: int dn = <int>(ceil(4 * ls))
__pyx_v_dn = ((int)ceil((4.0 * __pyx_v_ls))); /* … */ __pyx_v_dn = ((int)ceil((4.0 * __pyx_v_ls)));
045: float_t ss, fs, r
+046: for j in range(b):
__pyx_t_1 = __pyx_v_b; __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_b; __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;
+047: for k in range(c):
__pyx_t_4 = __pyx_v_c; __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_c; __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;
+048: ss = u[0, j, k] - di
__pyx_t_7 = 0; __pyx_t_8 = __pyx_v_j; __pyx_t_9 = __pyx_v_k; __pyx_v_ss = ((*((__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_ss = ((*((__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);
+049: fs = u[1, j, k] - dj
__pyx_t_9 = 1; __pyx_t_8 = __pyx_v_j; __pyx_t_7 = __pyx_v_k; __pyx_v_fs = ((*((__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_fs = ((*((__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);
+050: j0 = <int>(ss) + 1
__pyx_v_j0 = (((int)__pyx_v_ss) + 1); /* … */ __pyx_v_j0 = (((int)__pyx_v_ss) + 1);
+051: k0 = <int>(fs) + 1
__pyx_v_k0 = (((int)__pyx_v_fs) + 1); /* … */ __pyx_v_k0 = (((int)__pyx_v_fs) + 1);
+052: jj0 = j0 - dn if j0 - dn > 0 else 0
if ((((__pyx_v_j0 - __pyx_v_dn) > 0) != 0)) { __pyx_t_10 = (__pyx_v_j0 - __pyx_v_dn); } else { __pyx_t_10 = 0; } __pyx_v_jj0 = __pyx_t_10; /* … */ if ((((__pyx_v_j0 - __pyx_v_dn) > 0) != 0)) { __pyx_t_10 = (__pyx_v_j0 - __pyx_v_dn); } else { __pyx_t_10 = 0; } __pyx_v_jj0 = __pyx_t_10;
+053: jj1 = j0 + dn if j0 + dn < aa else aa
if ((((__pyx_v_j0 + __pyx_v_dn) < __pyx_v_aa) != 0)) { __pyx_t_10 = (__pyx_v_j0 + __pyx_v_dn); } else { __pyx_t_10 = __pyx_v_aa; } __pyx_v_jj1 = __pyx_t_10; /* … */ if ((((__pyx_v_j0 + __pyx_v_dn) < __pyx_v_aa) != 0)) { __pyx_t_10 = (__pyx_v_j0 + __pyx_v_dn); } else { __pyx_t_10 = __pyx_v_aa; } __pyx_v_jj1 = __pyx_t_10;
+054: kk0 = k0 - dn if k0 - dn > 0 else 0
if ((((__pyx_v_k0 - __pyx_v_dn) > 0) != 0)) { __pyx_t_10 = (__pyx_v_k0 - __pyx_v_dn); } else { __pyx_t_10 = 0; } __pyx_v_kk0 = __pyx_t_10; /* … */ if ((((__pyx_v_k0 - __pyx_v_dn) > 0) != 0)) { __pyx_t_10 = (__pyx_v_k0 - __pyx_v_dn); } else { __pyx_t_10 = 0; } __pyx_v_kk0 = __pyx_t_10;
+055: kk1 = k0 + dn if k0 + dn < bb else bb
if ((((__pyx_v_k0 + __pyx_v_dn) < __pyx_v_bb) != 0)) { __pyx_t_10 = (__pyx_v_k0 + __pyx_v_dn); } else { __pyx_t_10 = __pyx_v_bb; } __pyx_v_kk1 = __pyx_t_10; /* … */ if ((((__pyx_v_k0 + __pyx_v_dn) < __pyx_v_bb) != 0)) { __pyx_t_10 = (__pyx_v_k0 + __pyx_v_dn); } else { __pyx_t_10 = __pyx_v_bb; } __pyx_v_kk1 = __pyx_t_10;
+056: 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;
+057: 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;
+058: r = rbf((jj - ss)**2 + (kk - fs)**2, ls)
__pyx_v_r = __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_rbf((pow((__pyx_v_jj - __pyx_v_ss), 2.0) + pow((__pyx_v_kk - __pyx_v_fs), 2.0)), __pyx_v_ls); /* … */ __pyx_v_r = __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_rbf((powf((__pyx_v_jj - __pyx_v_ss), 2.0) + powf((__pyx_v_kk - __pyx_v_fs), 2.0)), __pyx_v_ls);
+059: I0[jj, kk] += I[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_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I.data + __pyx_t_7 * __pyx_v_I.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_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I.data + __pyx_t_7 * __pyx_v_I.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);
+060: w0[jj, kk] += W[j, k]**2 * r
__pyx_t_16 = __pyx_v_j; __pyx_t_9 = __pyx_v_k; __pyx_t_8 = __pyx_v_jj; __pyx_t_7 = __pyx_v_kk; *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_w0.data + __pyx_t_8 * __pyx_v_w0.strides[0]) )) + __pyx_t_7)) )) += (pow((*((__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)) ))), 2.0) * __pyx_v_r); } } } } /* … */ __pyx_t_16 = __pyx_v_j; __pyx_t_9 = __pyx_v_k; __pyx_t_8 = __pyx_v_jj; __pyx_t_7 = __pyx_v_kk; *((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_w0.data + __pyx_t_8 * __pyx_v_w0.strides[0]) )) + __pyx_t_7)) )) += (powf((*((__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)) ))), 2.0) * __pyx_v_r); } } } }
061:
+062: def make_reference(float_t[:, :, ::1] I_n, float_t[:, ::1] W, float_t[:, :, ::1] u, float_t[::1] di,
/* Python wrapper */ static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_1make_reference(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_6pyrost_3bin_6pyrost_make_reference[] = "make_reference(signatures, args, kwargs, defaults)\nGenerate an unabberated reference image of the sample\n based on the pixel mapping `u` and the measured data `I_n`\n using the `simple kriging`_.\n\n .. _simple kriging: https://en.wikipedia.org/wiki/Kriging#Simple_kriging\n\n Parameters\n ----------\n I_n : numpy.ndarray\n Measured intensity frames.\n W : numpy.ndarray\n Measured frames' whitefield.\n u : numpy.ndarray\n The pixel mapping between the data at\n the detector plane and the reference image at\n the reference plane.\n di : numpy.ndarray\n Sample's translations along the slow detector axis\n in pixels.\n dj : numpy.ndarray\n Sample's translations along the fast detector axis\n in pixels.\n sw_ss : int\n Search window size in pixels along the slow detector\n axis.\n sw_fs : int\n Search window size in pixels along the fast detector\n axis.\n ls : float\n Reference image length scale in pixels.\n return_nm0 : bool\n If True, also returns the lower bounds (`n0`, `m0`)\n of the reference image in pixels.\n num_threads : int, optional\n Number of threads.\n\n Returns\n -------\n I0 : numpy.ndarray\n Reference image array.\n n0 : int, optional\n The lower bounds of the slow detector axis of\n the reference image at the reference frame in pixels.\n Only provided if `return_nm0` is True.\n m0 : int, optional\n The lower bounds of the fast detector axis of\n the reference image at the reference frame in pixels.\n Only provided if `return_nm0` is True.\n\n Notes\n -----\n Reference image update algorithm the detector plane to the\n reference plane using the pixel mapping `u`:\n\n .. math::\n ii_{0}, jj_{0} = u[0, i, j] - di[n], u[1, i, j] - dj[n]\n\n Whereupon it generates a smoothed sample profile using\n simpl""y kriging approach with the gaussian radial basis\n function :math:`\\phi`:\n\n .. math::\n\n I_{ref}[ii, jj] = \\frac{\\sum_{n, i, j} I_n[i, j] W[i, j]\n \\phi[ii - u[0, i, j] + di[n], jj - u[1, i, j] + dj[n]]}\n {\\sum_{n, i, j} W[i, j]^2 \\phi[ii - u[0, i, j] + di[n],\n jj - u[1, i, j] + dj[n]]}\n\n .. math::\n\n \\phi [\\Delta ii_{ref}, \\Delta jj_{ref}] = \n \\exp\\left[{-\\frac{(\\Delta ii_{ref})^2 + \n (\\Delta jj_{ref})^2}{ls^2}}\\right]\n "; static PyMethodDef __pyx_mdef_6pyrost_3bin_6pyrost_1make_reference = {"make_reference", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pyrost_3bin_6pyrost_1make_reference, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_make_reference}; static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_1make_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, 62, __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, 62, __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, 62, __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, 62, __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, 62, __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_make_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_make_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; 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("make_reference", 0); __Pyx_INCREF(__pyx_v_kwargs); __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __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, 62, __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, 62, __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, 62, __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, 62, __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, 62, __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, 62, __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, 62, __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, 62, __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, 62, __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, 62, __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, 62, __pyx_L1_error) __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 62, __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, 62, __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, 62, __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, 62, __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, 62, __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, 62, __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, 62, __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, 62, __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, 62, __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, 62, __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, 62, __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, 62, __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, 62, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 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, 62, __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, 62, __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, 62, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 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, 62, __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_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, 62, __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_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, 62, __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, 62, __pyx_L1_error) goto __pyx_L10_break; } __pyx_L10_break:; __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 62, __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, 62, __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, 62, __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, 62, __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, 62, __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_) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s_); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 62, __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, 62, __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__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __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, 62, __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, 62, __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, 62, __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, 62, __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, 62, __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__3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 62, __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, 62, __pyx_L1_error) } __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 62, __pyx_L1_error) __pyx_t_3 = ((__pyx_t_9 > 1) != 0); if (__pyx_t_3) { /* … */ __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_No_matching_signature_found); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__3); __Pyx_GIVEREF(__pyx_tuple__3); __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 62, __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, 62, __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, 62, __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, 62, __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_60__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_defaults2, __pyx_self)->__pyx_arg_return_nm0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 62, __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, 62, __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__pyx_pw_6pyrost_3bin_6pyrost_15make_reference(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_0__pyx_mdef_6pyrost_3bin_6pyrost_15make_reference = {"__pyx_fuse_0make_reference", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0__pyx_pw_6pyrost_3bin_6pyrost_15make_reference, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_make_reference}; static PyObject *__pyx_fuse_0__pyx_pw_6pyrost_3bin_6pyrost_15make_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 } }; int __pyx_v_sw_ss; int __pyx_v_sw_fs; __pyx_t_5numpy_float64_t __pyx_v_ls; int __pyx_v_return_nm0; unsigned int __pyx_v_num_threads; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("make_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_sw_ss,&__pyx_n_s_sw_fs,&__pyx_n_s_ls,&__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_defaults2 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults2, __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("make_reference", 0, 8, 10, 1); __PYX_ERR(0, 62, __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("make_reference", 0, 8, 10, 2); __PYX_ERR(0, 62, __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("make_reference", 0, 8, 10, 3); __PYX_ERR(0, 62, __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("make_reference", 0, 8, 10, 4); __PYX_ERR(0, 62, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_ss)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("make_reference", 0, 8, 10, 5); __PYX_ERR(0, 62, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_fs)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("make_reference", 0, 8, 10, 6); __PYX_ERR(0, 62, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 7: if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ls)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("make_reference", 0, 8, 10, 7); __PYX_ERR(0, 62, __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, "make_reference") < 0)) __PYX_ERR(0, 62, __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_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 62, __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, 62, __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, 62, __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, 62, __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, 63, __pyx_L3_error) __pyx_v_sw_ss = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_sw_ss == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 63, __pyx_L3_error) __pyx_v_sw_fs = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_sw_fs == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 63, __pyx_L3_error) __pyx_v_ls = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_ls == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 63, __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, 63, __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, 63, __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("make_reference", 0, 8, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 62, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyrost.bin.pyrost.make_reference", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_14make_reference(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_ss, __pyx_v_sw_fs, __pyx_v_ls, __pyx_v_return_nm0, __pyx_v_num_threads); 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_14make_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, int __pyx_v_sw_ss, int __pyx_v_sw_fs, __pyx_t_5numpy_float64_t __pyx_v_ls, int __pyx_v_return_nm0, unsigned int __pyx_v_num_threads) { PyObject *__pyx_v_dtype = 0; int __pyx_v_a; int __pyx_v_b; int __pyx_v_c; int __pyx_v_i; int __pyx_v_j; int __pyx_v_k; int __pyx_v_t; __pyx_t_5numpy_float64_t __pyx_v_Is; __pyx_t_5numpy_float64_t __pyx_v_ws; __pyx_t_5numpy_float64_t __pyx_v_n0; __pyx_t_5numpy_float64_t __pyx_v_m0; int __pyx_v_aa; int __pyx_v_bb; __Pyx_memviewslice __pyx_v_I = { 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 } }; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_0make_reference", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __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_AddTraceback("pyrost.bin.pyrost.make_reference", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_dtype); __PYX_XDEC_MEMVIEW(&__pyx_v_I, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_w, 1); __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_62__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_defaults3, __pyx_self)->__pyx_arg_return_nm0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 62, __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, 62, __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__pyx_pw_6pyrost_3bin_6pyrost_17make_reference(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_1__pyx_mdef_6pyrost_3bin_6pyrost_17make_reference = {"__pyx_fuse_1make_reference", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1__pyx_pw_6pyrost_3bin_6pyrost_17make_reference, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_make_reference}; static PyObject *__pyx_fuse_1__pyx_pw_6pyrost_3bin_6pyrost_17make_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 } }; int __pyx_v_sw_ss; int __pyx_v_sw_fs; __pyx_t_5numpy_float32_t __pyx_v_ls; int __pyx_v_return_nm0; unsigned int __pyx_v_num_threads; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("make_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_sw_ss,&__pyx_n_s_sw_fs,&__pyx_n_s_ls,&__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_defaults3 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults3, __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("make_reference", 0, 8, 10, 1); __PYX_ERR(0, 62, __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("make_reference", 0, 8, 10, 2); __PYX_ERR(0, 62, __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("make_reference", 0, 8, 10, 3); __PYX_ERR(0, 62, __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("make_reference", 0, 8, 10, 4); __PYX_ERR(0, 62, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_ss)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("make_reference", 0, 8, 10, 5); __PYX_ERR(0, 62, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_fs)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("make_reference", 0, 8, 10, 6); __PYX_ERR(0, 62, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 7: if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ls)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("make_reference", 0, 8, 10, 7); __PYX_ERR(0, 62, __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, "make_reference") < 0)) __PYX_ERR(0, 62, __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_float32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 62, __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, 62, __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, 62, __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, 62, __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, 63, __pyx_L3_error) __pyx_v_sw_ss = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_sw_ss == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 63, __pyx_L3_error) __pyx_v_sw_fs = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_sw_fs == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 63, __pyx_L3_error) __pyx_v_ls = __pyx_PyFloat_AsFloat(values[7]); if (unlikely((__pyx_v_ls == ((npy_float32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 63, __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, 63, __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, 63, __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("make_reference", 0, 8, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 62, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyrost.bin.pyrost.make_reference", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_16make_reference(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_ss, __pyx_v_sw_fs, __pyx_v_ls, __pyx_v_return_nm0, __pyx_v_num_threads); 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_16make_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, int __pyx_v_sw_ss, int __pyx_v_sw_fs, __pyx_t_5numpy_float32_t __pyx_v_ls, int __pyx_v_return_nm0, unsigned int __pyx_v_num_threads) { PyObject *__pyx_v_dtype = 0; int __pyx_v_a; int __pyx_v_b; int __pyx_v_c; int __pyx_v_i; int __pyx_v_j; int __pyx_v_k; int __pyx_v_t; __pyx_t_5numpy_float32_t __pyx_v_Is; __pyx_t_5numpy_float32_t __pyx_v_ws; __pyx_t_5numpy_float32_t __pyx_v_n0; __pyx_t_5numpy_float32_t __pyx_v_m0; int __pyx_v_aa; int __pyx_v_bb; __Pyx_memviewslice __pyx_v_I = { 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 } }; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_1make_reference", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __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_AddTraceback("pyrost.bin.pyrost.make_reference", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_dtype); __PYX_XDEC_MEMVIEW(&__pyx_v_I, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_w, 1); __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_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_Function_call_with_ambiguous_arg); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__4); __Pyx_GIVEREF(__pyx_tuple__4); /* … */ __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 62, __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_tuple__25 = PyTuple_Pack(27, __pyx_n_s_I_n, __pyx_n_s_W, __pyx_n_s_u, __pyx_n_s_di, __pyx_n_s_dj, __pyx_n_s_sw_ss, __pyx_n_s_sw_fs, __pyx_n_s_ls, __pyx_n_s_return_nm0, __pyx_n_s_num_threads, __pyx_n_s_dtype, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_c, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_k, __pyx_n_s_t, __pyx_n_s_Is, __pyx_n_s_ws, __pyx_n_s_n0, __pyx_n_s_m0, __pyx_n_s_aa, __pyx_n_s_bb, __pyx_n_s_I, __pyx_n_s_w, __pyx_n_s_I0); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__25); __Pyx_GIVEREF(__pyx_tuple__25); __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_6pyrost_3bin_6pyrost_15make_reference, 0, __pyx_n_s_make_reference, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__26)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults2), 0)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_t_1)->__pyx_arg_return_nm0 = 1; __Pyx_CyFunction_Defaults(__pyx_defaults2, __pyx_t_1)->__pyx_arg_num_threads = 1; __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3); __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pyrost_3bin_6pyrost_60__defaults__); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_float64_t, __pyx_t_1) < 0) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_6pyrost_3bin_6pyrost_17make_reference, 0, __pyx_n_s_make_reference, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__26)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults3), 0)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_t_1)->__pyx_arg_return_nm0 = 1; __Pyx_CyFunction_Defaults(__pyx_defaults3, __pyx_t_1)->__pyx_arg_num_threads = 1; __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3); __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pyrost_3bin_6pyrost_62__defaults__); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_float32_t, __pyx_t_1) < 0) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_6pyrost_3bin_6pyrost_1make_reference, 0, __pyx_n_s_make_reference, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__26)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3); ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_2; __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_reference, __pyx_t_1) < 0) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_codeobj__26 = (PyObject*)__Pyx_PyCode_New(10, 0, 27, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__25, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pyrost_bin_pyrost_pyx, __pyx_n_s_make_reference, 62, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__26)) __PYX_ERR(0, 62, __pyx_L1_error)
+063: float_t[::1] dj, int sw_ss, int sw_fs, float_t ls, bint return_nm0=True, unsigned num_threads=1):
__pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 63, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyInt_From_long(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 63, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
064: r"""Generate an unabberated reference image of the sample
065: based on the pixel mapping `u` and the measured data `I_n`
066: using the `simple kriging`_.
067:
068: .. _simple kriging: https://en.wikipedia.org/wiki/Kriging#Simple_kriging
069:
070: Parameters
071: ----------
072: I_n : numpy.ndarray
073: Measured intensity frames.
074: W : numpy.ndarray
075: Measured frames' whitefield.
076: u : numpy.ndarray
077: The pixel mapping between the data at
078: the detector plane and the reference image at
079: the reference plane.
080: di : numpy.ndarray
081: Sample's translations along the slow detector axis
082: in pixels.
083: dj : numpy.ndarray
084: Sample's translations along the fast detector axis
085: in pixels.
086: sw_ss : int
087: Search window size in pixels along the slow detector
088: axis.
089: sw_fs : int
090: Search window size in pixels along the fast detector
091: axis.
092: ls : float
093: Reference image length scale in pixels.
094: return_nm0 : bool
095: If True, also returns the lower bounds (`n0`, `m0`)
096: of the reference image in pixels.
097: num_threads : int, optional
098: Number of threads.
099:
100: Returns
101: -------
102: I0 : numpy.ndarray
103: Reference image array.
104: n0 : int, optional
105: The lower bounds of the slow detector axis of
106: the reference image at the reference frame in pixels.
107: Only provided if `return_nm0` is True.
108: m0 : int, optional
109: The lower bounds of the fast detector axis of
110: the reference image at the reference frame in pixels.
111: Only provided if `return_nm0` is True.
112:
113: Notes
114: -----
115: Reference image update algorithm the detector plane to the
116: reference plane using the pixel mapping `u`:
117:
118: .. math::
119: ii_{0}, jj_{0} = u[0, i, j] - di[n], u[1, i, j] - dj[n]
120:
121: Whereupon it generates a smoothed sample profile using
122: simply kriging approach with the gaussian radial basis
123: function :math:`\phi`:
124:
125: .. math::
126:
127: I_{ref}[ii, jj] = \frac{\sum_{n, i, j} I_n[i, j] W[i, j]
128: \phi[ii - u[0, i, j] + di[n], jj - u[1, i, j] + dj[n]]}
129: {\sum_{n, i, j} W[i, j]^2 \phi[ii - u[0, i, j] + di[n],
130: jj - u[1, i, j] + dj[n]]}
131:
132: .. math::
133:
134: \phi [\Delta ii_{ref}, \Delta jj_{ref}] =
135: \exp\left[{-\frac{(\Delta ii_{ref})^2 +
136: (\Delta jj_{ref})^2}{ls^2}}\right]
137: """
138: cdef:
+139: str dtype = 'float64' if float_t is np.float64_t else 'float32'
if ((1 != 0)) { __Pyx_INCREF(__pyx_n_u_float64); __pyx_t_1 = __pyx_n_u_float64; } else { __Pyx_INCREF(__pyx_n_u_float32); __pyx_t_1 = __pyx_n_u_float32; } __pyx_v_dtype = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* … */ if ((0 != 0)) { __Pyx_INCREF(__pyx_n_u_float64); __pyx_t_1 = __pyx_n_u_float64; } else { __Pyx_INCREF(__pyx_n_u_float32); __pyx_t_1 = __pyx_n_u_float32; } __pyx_v_dtype = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+140: int a = I_n.shape[0], b = I_n.shape[1], c = I_n.shape[2]
__pyx_v_a = (__pyx_v_I_n.shape[0]); __pyx_v_b = (__pyx_v_I_n.shape[1]); __pyx_v_c = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_a = (__pyx_v_I_n.shape[0]); __pyx_v_b = (__pyx_v_I_n.shape[1]); __pyx_v_c = (__pyx_v_I_n.shape[2]);
141: int i, j, k, t
142: float_t Is, ws
+143: float_t n0 = -min_float(&u[0, 0, 0], b * c) + max_float(&di[0], a) + sw_ss
__pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_5 = 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_2 * __pyx_v_u.strides[0]) ) + __pyx_t_3 * __pyx_v_u.strides[1]) )) + __pyx_t_4)) )))), (__pyx_v_b * __pyx_v_c))) + __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_5)) )))), __pyx_v_a)) + __pyx_v_sw_ss); /* … */ __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_5 = 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_2 * __pyx_v_u.strides[0]) ) + __pyx_t_3 * __pyx_v_u.strides[1]) )) + __pyx_t_4)) )))), (__pyx_v_b * __pyx_v_c))) + __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_5)) )))), __pyx_v_a)) + __pyx_v_sw_ss);
+144: float_t m0 = -min_float(&u[1, 0, 0], b * c) + max_float(&dj[0], a) + sw_fs
__pyx_t_5 = 1; __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_t_2 = 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_5 * __pyx_v_u.strides[0]) ) + __pyx_t_4 * __pyx_v_u.strides[1]) )) + __pyx_t_3)) )))), (__pyx_v_b * __pyx_v_c))) + __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_2)) )))), __pyx_v_a)) + __pyx_v_sw_fs); /* … */ __pyx_t_5 = 1; __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_t_2 = 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_5 * __pyx_v_u.strides[0]) ) + __pyx_t_4 * __pyx_v_u.strides[1]) )) + __pyx_t_3)) )))), (__pyx_v_b * __pyx_v_c))) + __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_2)) )))), __pyx_v_a)) + __pyx_v_sw_fs);
+145: int aa = <int>(max_float(&u[0, 0, 0], b * c) - min_float(&di[0], a) + n0) + 1 + sw_ss
__pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_v_aa = ((((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_2 * __pyx_v_u.strides[0]) ) + __pyx_t_3 * __pyx_v_u.strides[1]) )) + __pyx_t_4)) )))), (__pyx_v_b * __pyx_v_c)) - __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_5)) )))), __pyx_v_a)) + __pyx_v_n0)) + 1) + __pyx_v_sw_ss); /* … */ __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_v_aa = ((((int)((__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_2 * __pyx_v_u.strides[0]) ) + __pyx_t_3 * __pyx_v_u.strides[1]) )) + __pyx_t_4)) )))), (__pyx_v_b * __pyx_v_c)) - __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_5)) )))), __pyx_v_a)) + __pyx_v_n0)) + 1) + __pyx_v_sw_ss);
+146: int bb = <int>(max_float(&u[1, 0, 0], b * c) - min_float(&dj[0], a) + m0) + 1 + sw_fs
__pyx_t_5 = 1; __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_t_2 = 0; __pyx_v_bb = ((((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_4 * __pyx_v_u.strides[1]) )) + __pyx_t_3)) )))), (__pyx_v_b * __pyx_v_c)) - __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_2)) )))), __pyx_v_a)) + __pyx_v_m0)) + 1) + __pyx_v_sw_fs); /* … */ __pyx_t_5 = 1; __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_t_2 = 0; __pyx_v_bb = ((((int)((__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_4 * __pyx_v_u.strides[1]) )) + __pyx_t_3)) )))), (__pyx_v_b * __pyx_v_c)) - __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_2)) )))), __pyx_v_a)) + __pyx_v_m0)) + 1) + __pyx_v_sw_fs);
+147: float_t[:, :, ::1] I = np.zeros((num_threads, aa, bb), dtype=dtype)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_aa); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_bb); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_8); __pyx_t_1 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 147, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_7, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_I = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; /* … */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_aa); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_bb); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_8); __pyx_t_1 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 147, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_7, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_I = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL;
+148: float_t[:, :, ::1] w = np.zeros((num_threads, aa, bb), dtype=dtype)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_unsigned_int(__pyx_v_num_threads); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_aa); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_bb); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6); __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 148, __pyx_L1_error) __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_8, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_w = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; /* … */ __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_unsigned_int(__pyx_v_num_threads); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_aa); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_bb); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6); __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 148, __pyx_L1_error) __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_8, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_w = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL;
+149: float_t[:, ::1] I0 = np.zeros((aa, bb), dtype=dtype)
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_aa); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_bb); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_6); __pyx_t_8 = 0; __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 149, __pyx_L1_error) __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_8, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_I0 = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; /* … */ __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_aa); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_bb); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_6); __pyx_t_8 = 0; __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 149, __pyx_L1_error) __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_8, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_I0 = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL;
+150: for i in prange(a, 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_a; 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_a; 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_L5; } __pyx_L5:; } } /* … */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { __pyx_t_12 = __pyx_v_a; 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_a; 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_L5; } __pyx_L5:; } }
+151: t = openmp.omp_get_thread_num()
__pyx_v_t = omp_get_thread_num(); /* … */ __pyx_v_t = omp_get_thread_num();
+152: frame_reference(I[t], w[t], I_n[i], W, u, di[i] - n0, dj[i] - m0, ls)
__pyx_t_11.data = __pyx_v_I.data; __pyx_t_11.memview = __pyx_v_I.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_I.strides[0]; __pyx_t_11.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_11.shape[0] = __pyx_v_I.shape[1]; __pyx_t_11.strides[0] = __pyx_v_I.strides[1]; __pyx_t_11.suboffsets[0] = -1; __pyx_t_11.shape[1] = __pyx_v_I.shape[2]; __pyx_t_11.strides[1] = __pyx_v_I.strides[2]; __pyx_t_11.suboffsets[1] = -1; __pyx_t_15.data = __pyx_v_w.data; __pyx_t_15.memview = __pyx_v_w.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.strides[0]; __pyx_t_15.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_15.shape[0] = __pyx_v_w.shape[1]; __pyx_t_15.strides[0] = __pyx_v_w.strides[1]; __pyx_t_15.suboffsets[0] = -1; __pyx_t_15.shape[1] = __pyx_v_w.shape[2]; __pyx_t_15.strides[1] = __pyx_v_w.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_2 = __pyx_v_i; __pyx_t_3 = __pyx_v_i; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_frame_reference(__pyx_t_11, __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_2)) ))) - __pyx_v_n0), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dj.data) + __pyx_t_3)) ))) - __pyx_v_m0), __pyx_v_ls); __PYX_XDEC_MEMVIEW(&__pyx_t_11, 0); __pyx_t_11.memview = NULL; __pyx_t_11.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_11.data = __pyx_v_I.data; __pyx_t_11.memview = __pyx_v_I.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_I.strides[0]; __pyx_t_11.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_11.shape[0] = __pyx_v_I.shape[1]; __pyx_t_11.strides[0] = __pyx_v_I.strides[1]; __pyx_t_11.suboffsets[0] = -1; __pyx_t_11.shape[1] = __pyx_v_I.shape[2]; __pyx_t_11.strides[1] = __pyx_v_I.strides[2]; __pyx_t_11.suboffsets[1] = -1; __pyx_t_15.data = __pyx_v_w.data; __pyx_t_15.memview = __pyx_v_w.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.strides[0]; __pyx_t_15.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_15.shape[0] = __pyx_v_w.shape[1]; __pyx_t_15.strides[0] = __pyx_v_w.strides[1]; __pyx_t_15.suboffsets[0] = -1; __pyx_t_15.shape[1] = __pyx_v_w.shape[2]; __pyx_t_15.strides[1] = __pyx_v_w.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_2 = __pyx_v_i; __pyx_t_3 = __pyx_v_i; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_frame_reference(__pyx_t_11, __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_2)) ))) - __pyx_v_n0), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dj.data) + __pyx_t_3)) ))) - __pyx_v_m0), __pyx_v_ls); __PYX_XDEC_MEMVIEW(&__pyx_t_11, 0); __pyx_t_11.memview = NULL; __pyx_t_11.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 }
+153: for k in prange(bb, schedule='guided', num_threads=num_threads, nogil=True):
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { __pyx_t_14 = __pyx_v_bb; 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 lastprivate(__pyx_v_Is) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) lastprivate(__pyx_v_t) lastprivate(__pyx_v_ws) schedule(guided) __pyx_t_14 = __pyx_v_bb; 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 lastprivate(__pyx_v_Is) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) lastprivate(__pyx_v_t) lastprivate(__pyx_v_ws) 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_k = (int)(0 + 1 * __pyx_t_13); /* Initialize private variables to invalid values */ __pyx_v_Is = ((__pyx_t_5numpy_float64_t)__PYX_NAN()); __pyx_v_i = ((int)0xbad0bad0); __pyx_v_j = ((int)0xbad0bad0); __pyx_v_t = ((int)0xbad0bad0); __pyx_v_ws = ((__pyx_t_5numpy_float64_t)__PYX_NAN()); /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L14; } __pyx_L14:; } } /* … */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { __pyx_t_14 = __pyx_v_bb; 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 lastprivate(__pyx_v_Is) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) lastprivate(__pyx_v_t) lastprivate(__pyx_v_ws) schedule(guided) __pyx_t_14 = __pyx_v_bb; 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 lastprivate(__pyx_v_Is) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) lastprivate(__pyx_v_t) lastprivate(__pyx_v_ws) 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_k = (int)(0 + 1 * __pyx_t_13); /* Initialize private variables to invalid values */ __pyx_v_Is = ((__pyx_t_5numpy_float32_t)__PYX_NAN()); __pyx_v_i = ((int)0xbad0bad0); __pyx_v_j = ((int)0xbad0bad0); __pyx_v_t = ((int)0xbad0bad0); __pyx_v_ws = ((__pyx_t_5numpy_float32_t)__PYX_NAN()); /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L14; } __pyx_L14:; } }
+154: t = openmp.omp_get_thread_num()
__pyx_v_t = omp_get_thread_num(); /* … */ __pyx_v_t = omp_get_thread_num();
+155: for j in range(aa):
__pyx_t_17 = __pyx_v_aa; __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_aa; __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;
+156: Is = 0; ws = 0
__pyx_v_Is = 0.0; __pyx_v_ws = 0.0; /* … */ __pyx_v_Is = 0.0; __pyx_v_ws = 0.0;
+157: for i in range(num_threads):
__pyx_t_20 = __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 = __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;
+158: Is = Is + I[i, j, k]
__pyx_t_3 = __pyx_v_i; __pyx_t_2 = __pyx_v_j; __pyx_t_4 = __pyx_v_k; __pyx_v_Is = (__pyx_v_Is + (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I.data + __pyx_t_3 * __pyx_v_I.strides[0]) ) + __pyx_t_2 * __pyx_v_I.strides[1]) )) + __pyx_t_4)) )))); /* … */ __pyx_t_3 = __pyx_v_i; __pyx_t_2 = __pyx_v_j; __pyx_t_4 = __pyx_v_k; __pyx_v_Is = (__pyx_v_Is + (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I.data + __pyx_t_3 * __pyx_v_I.strides[0]) ) + __pyx_t_2 * __pyx_v_I.strides[1]) )) + __pyx_t_4)) ))));
+159: ws = ws + w[i, j, k]
__pyx_t_4 = __pyx_v_i; __pyx_t_2 = __pyx_v_j; __pyx_t_3 = __pyx_v_k; __pyx_v_ws = (__pyx_v_ws + (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_w.data + __pyx_t_4 * __pyx_v_w.strides[0]) ) + __pyx_t_2 * __pyx_v_w.strides[1]) )) + __pyx_t_3)) )))); } /* … */ __pyx_t_4 = __pyx_v_i; __pyx_t_2 = __pyx_v_j; __pyx_t_3 = __pyx_v_k; __pyx_v_ws = (__pyx_v_ws + (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_w.data + __pyx_t_4 * __pyx_v_w.strides[0]) ) + __pyx_t_2 * __pyx_v_w.strides[1]) )) + __pyx_t_3)) )))); }
+160: if ws:
__pyx_t_23 = (__pyx_v_ws != 0); if (__pyx_t_23) { /* … */ goto __pyx_L23; } /* … */ __pyx_t_23 = (__pyx_v_ws != 0); if (__pyx_t_23) { /* … */ goto __pyx_L23; }
+161: I0[j, k] = Is / ws
__pyx_t_3 = __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_I0.data + __pyx_t_3 * __pyx_v_I0.strides[0]) )) + __pyx_t_2)) )) = (__pyx_v_Is / __pyx_v_ws); /* … */ __pyx_t_3 = __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_I0.data + __pyx_t_3 * __pyx_v_I0.strides[0]) )) + __pyx_t_2)) )) = (__pyx_v_Is / __pyx_v_ws);
162: else:
+163: I0[j, k] = 0
/*else*/ { __pyx_t_2 = __pyx_v_j; __pyx_t_3 = __pyx_v_k; *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_2 * __pyx_v_I0.strides[0]) )) + __pyx_t_3)) )) = 0.0; } __pyx_L23:; } } } } } } #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_2 = __pyx_v_j; __pyx_t_3 = __pyx_v_k; *((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_2 * __pyx_v_I0.strides[0]) )) + __pyx_t_3)) )) = 0.0; } __pyx_L23:; } } } } } } #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 }
+164: if return_nm0:
__pyx_t_23 = (__pyx_v_return_nm0 != 0); if (__pyx_t_23) { /* … */ } /* … */ __pyx_t_23 = (__pyx_v_return_nm0 != 0); if (__pyx_t_23) { /* … */ }
+165: return np.asarray(I0), <int>(n0), <int>(m0)
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_asarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __pyx_memoryview_fromslice(__pyx_v_I0, 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_9)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_8 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_1, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_9); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_int(((int)__pyx_v_n0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = __Pyx_PyInt_From_int(((int)__pyx_v_m0)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_9); __pyx_t_8 = 0; __pyx_t_6 = 0; __pyx_t_9 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_asarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __pyx_memoryview_fromslice(__pyx_v_I0, 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_9)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_8 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_1, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_9); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_int(((int)__pyx_v_n0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = __Pyx_PyInt_From_int(((int)__pyx_v_m0)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_9); __pyx_t_8 = 0; __pyx_t_6 = 0; __pyx_t_9 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
166: else:
+167: return np.asarray(I0)
/*else*/ { __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_asarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __pyx_memoryview_fromslice(__pyx_v_I0, 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_9)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_8, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_9); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; } /* … */ /*else*/ { __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_asarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __pyx_memoryview_fromslice(__pyx_v_I0, 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_9)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_8, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_9); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; }
168:
+169: cdef void mse_bi(float_t* m_ptr, float_t[::1] I, float_t[:, ::1] I0,
static void __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_t_5numpy_float64_t *__pyx_v_m_ptr, __Pyx_memviewslice __pyx_v_I, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, __pyx_t_5numpy_float64_t __pyx_v_ux, __pyx_t_5numpy_float64_t __pyx_v_uy) { int __pyx_v_a; int __pyx_v_aa; int __pyx_v_bb; int __pyx_v_i; int __pyx_v_ss0; int __pyx_v_ss1; int __pyx_v_fs0; int __pyx_v_fs1; __pyx_t_5numpy_float64_t __pyx_v_SS_res; __pyx_t_5numpy_float64_t __pyx_v_SS_tot; __pyx_t_5numpy_float64_t __pyx_v_ss; __pyx_t_5numpy_float64_t __pyx_v_fs; __pyx_t_5numpy_float64_t __pyx_v_dss; __pyx_t_5numpy_float64_t __pyx_v_dfs; __pyx_t_5numpy_float64_t __pyx_v_I0_bi; /* … */ /* function exit code */ } static void __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_t_5numpy_float32_t *__pyx_v_m_ptr, __Pyx_memviewslice __pyx_v_I, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, __pyx_t_5numpy_float32_t __pyx_v_ux, __pyx_t_5numpy_float32_t __pyx_v_uy) { int __pyx_v_a; int __pyx_v_aa; int __pyx_v_bb; int __pyx_v_i; int __pyx_v_ss0; int __pyx_v_ss1; int __pyx_v_fs0; int __pyx_v_fs1; __pyx_t_5numpy_float32_t __pyx_v_SS_res; __pyx_t_5numpy_float32_t __pyx_v_SS_tot; __pyx_t_5numpy_float32_t __pyx_v_ss; __pyx_t_5numpy_float32_t __pyx_v_fs; __pyx_t_5numpy_float32_t __pyx_v_dss; __pyx_t_5numpy_float32_t __pyx_v_dfs; __pyx_t_5numpy_float32_t __pyx_v_I0_bi; /* … */ /* function exit code */ }
170: float_t[::1] di, float_t[::1] dj, float_t ux, float_t uy) nogil:
171: cdef:
+172: int a = I.shape[0] - 1, aa = I0.shape[0], bb = I0.shape[1]
__pyx_v_a = ((__pyx_v_I.shape[0]) - 1); __pyx_v_aa = (__pyx_v_I0.shape[0]); __pyx_v_bb = (__pyx_v_I0.shape[1]); /* … */ __pyx_v_a = ((__pyx_v_I.shape[0]) - 1); __pyx_v_aa = (__pyx_v_I0.shape[0]); __pyx_v_bb = (__pyx_v_I0.shape[1]);
173: int i, ss0, ss1, fs0, fs1
+174: float_t SS_res = 0, SS_tot = 0, ss, fs, dss, dfs, I0_bi
__pyx_v_SS_res = 0.0; __pyx_v_SS_tot = 0.0; /* … */ __pyx_v_SS_res = 0.0; __pyx_v_SS_tot = 0.0;
+175: 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;
+176: ss = ux - di[i]
__pyx_t_4 = __pyx_v_i; __pyx_v_ss = (__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_4 = __pyx_v_i; __pyx_v_ss = (__pyx_v_ux - (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_di.data) + __pyx_t_4)) ))));
+177: fs = uy - dj[i]
__pyx_t_4 = __pyx_v_i; __pyx_v_fs = (__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_4 = __pyx_v_i; __pyx_v_fs = (__pyx_v_uy - (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dj.data) + __pyx_t_4)) ))));
+178: if ss <= 0:
__pyx_t_5 = ((__pyx_v_ss <= 0.0) != 0); if (__pyx_t_5) { /* … */ goto __pyx_L5; } /* … */ __pyx_t_5 = ((__pyx_v_ss <= 0.0) != 0); if (__pyx_t_5) { /* … */ goto __pyx_L5; }
+179: dss = 0; ss0 = 0; ss1 = 0
__pyx_v_dss = 0.0; __pyx_v_ss0 = 0; __pyx_v_ss1 = 0; /* … */ __pyx_v_dss = 0.0; __pyx_v_ss0 = 0; __pyx_v_ss1 = 0;
+180: elif ss >= aa - 1:
__pyx_t_5 = ((__pyx_v_ss >= (__pyx_v_aa - 1)) != 0); if (__pyx_t_5) { /* … */ goto __pyx_L5; } /* … */ __pyx_t_5 = ((__pyx_v_ss >= (__pyx_v_aa - 1)) != 0); if (__pyx_t_5) { /* … */ goto __pyx_L5; }
+181: dss = 0; ss0 = aa - 1; ss1 = aa - 1
__pyx_v_dss = 0.0; __pyx_v_ss0 = (__pyx_v_aa - 1); __pyx_v_ss1 = (__pyx_v_aa - 1); /* … */ __pyx_v_dss = 0.0; __pyx_v_ss0 = (__pyx_v_aa - 1); __pyx_v_ss1 = (__pyx_v_aa - 1);
182: else:
+183: dss = ss - floor(ss)
/*else*/ { __pyx_v_dss = (__pyx_v_ss - floor(__pyx_v_ss)); /* … */ /*else*/ { __pyx_v_dss = (__pyx_v_ss - floor(__pyx_v_ss));
+184: ss0 = <int>(floor(ss)); ss1 = ss0 + 1
__pyx_v_ss0 = ((int)floor(__pyx_v_ss)); __pyx_v_ss1 = (__pyx_v_ss0 + 1); } __pyx_L5:; /* … */ __pyx_v_ss0 = ((int)floor(__pyx_v_ss)); __pyx_v_ss1 = (__pyx_v_ss0 + 1); } __pyx_L5:;
+185: if fs <= 0:
__pyx_t_5 = ((__pyx_v_fs <= 0.0) != 0); if (__pyx_t_5) { /* … */ goto __pyx_L6; } /* … */ __pyx_t_5 = ((__pyx_v_fs <= 0.0) != 0); if (__pyx_t_5) { /* … */ goto __pyx_L6; }
+186: dfs = 0; fs0 = 0; fs1 = 0
__pyx_v_dfs = 0.0; __pyx_v_fs0 = 0; __pyx_v_fs1 = 0; /* … */ __pyx_v_dfs = 0.0; __pyx_v_fs0 = 0; __pyx_v_fs1 = 0;
+187: elif fs >= bb - 1:
__pyx_t_5 = ((__pyx_v_fs >= (__pyx_v_bb - 1)) != 0); if (__pyx_t_5) { /* … */ goto __pyx_L6; } /* … */ __pyx_t_5 = ((__pyx_v_fs >= (__pyx_v_bb - 1)) != 0); if (__pyx_t_5) { /* … */ goto __pyx_L6; }
+188: dfs = 0; fs0 = bb - 1; fs1 = bb - 1
__pyx_v_dfs = 0.0; __pyx_v_fs0 = (__pyx_v_bb - 1); __pyx_v_fs1 = (__pyx_v_bb - 1); /* … */ __pyx_v_dfs = 0.0; __pyx_v_fs0 = (__pyx_v_bb - 1); __pyx_v_fs1 = (__pyx_v_bb - 1);
189: else:
+190: dfs = fs - floor(fs)
/*else*/ { __pyx_v_dfs = (__pyx_v_fs - floor(__pyx_v_fs)); /* … */ /*else*/ { __pyx_v_dfs = (__pyx_v_fs - floor(__pyx_v_fs));
+191: fs0 = <int>(floor(fs)); fs1 = fs0 + 1
__pyx_v_fs0 = ((int)floor(__pyx_v_fs)); __pyx_v_fs1 = (__pyx_v_fs0 + 1); } __pyx_L6:; /* … */ __pyx_v_fs0 = ((int)floor(__pyx_v_fs)); __pyx_v_fs1 = (__pyx_v_fs0 + 1); } __pyx_L6:;
+192: I0_bi = (1 - dss) * (1 - dfs) * I0[ss0, fs0] + \
__pyx_t_4 = __pyx_v_ss0; __pyx_t_6 = __pyx_v_fs0; /* … */ __pyx_t_4 = __pyx_v_ss0; __pyx_t_6 = __pyx_v_fs0;
+193: (1 - dss) * dfs * I0[ss0, fs1] + \
__pyx_t_7 = __pyx_v_ss0; __pyx_t_8 = __pyx_v_fs1; /* … */ __pyx_t_7 = __pyx_v_ss0; __pyx_t_8 = __pyx_v_fs1;
+194: dss * (1 - dfs) * I0[ss1, fs0] + \
__pyx_t_9 = __pyx_v_ss1; __pyx_t_10 = __pyx_v_fs0; /* … */ __pyx_v_I0_bi = ((((((1.0 - __pyx_v_dss) * (1.0 - __pyx_v_dfs)) * (*((__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_dss) * __pyx_v_dfs) * (*((__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_dss * (1.0 - __pyx_v_dfs)) * (*((__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_dss * __pyx_v_dfs) * (*((__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_ss1; __pyx_t_10 = __pyx_v_fs0; /* … */ __pyx_v_I0_bi = ((((((1.0 - __pyx_v_dss) * (1.0 - __pyx_v_dfs)) * (*((__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_dss) * __pyx_v_dfs) * (*((__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_dss * (1.0 - __pyx_v_dfs)) * (*((__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_dss * __pyx_v_dfs) * (*((__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)) )))));
+195: dss * dfs * I0[ss1, fs1]
__pyx_t_11 = __pyx_v_ss1; __pyx_t_12 = __pyx_v_fs1; /* … */ __pyx_t_11 = __pyx_v_ss1; __pyx_t_12 = __pyx_v_fs1;
+196: SS_res += (I[i] - I0_bi)**2
__pyx_t_12 = __pyx_v_i; __pyx_v_SS_res = (__pyx_v_SS_res + pow(((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_I.data) + __pyx_t_12)) ))) - __pyx_v_I0_bi), 2.0)); /* … */ __pyx_t_12 = __pyx_v_i; __pyx_v_SS_res = (__pyx_v_SS_res + powf(((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_I.data) + __pyx_t_12)) ))) - __pyx_v_I0_bi), 2.0));
+197: SS_tot += (I[i] - 1)**2
__pyx_t_12 = __pyx_v_i; __pyx_v_SS_tot = (__pyx_v_SS_tot + pow(((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_I.data) + __pyx_t_12)) ))) - 1.0), 2.0)); } /* … */ __pyx_t_12 = __pyx_v_i; __pyx_v_SS_tot = (__pyx_v_SS_tot + powf(((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_I.data) + __pyx_t_12)) ))) - 1.0), 2.0)); }
+198: m_ptr[0] = SS_res; m_ptr[1] = SS_tot
(__pyx_v_m_ptr[0]) = __pyx_v_SS_res; (__pyx_v_m_ptr[1]) = __pyx_v_SS_tot; /* … */ (__pyx_v_m_ptr[0]) = __pyx_v_SS_res; (__pyx_v_m_ptr[1]) = __pyx_v_SS_tot;
+199: if m_ptr[2] >= 0:
__pyx_t_5 = (((__pyx_v_m_ptr[2]) >= 0.0) != 0); if (__pyx_t_5) { /* … */ } /* … */ __pyx_t_5 = (((__pyx_v_m_ptr[2]) >= 0.0) != 0); if (__pyx_t_5) { /* … */ }
+200: m_ptr[2] = 4 * I[a] * (SS_res / SS_tot**2 + SS_res**2 / SS_tot**3)
__pyx_t_12 = __pyx_v_a; (__pyx_v_m_ptr[2]) = ((4.0 * (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_I.data) + __pyx_t_12)) )))) * ((__pyx_v_SS_res / pow(__pyx_v_SS_tot, 2.0)) + (pow(__pyx_v_SS_res, 2.0) / pow(__pyx_v_SS_tot, 3.0)))); /* … */ __pyx_t_12 = __pyx_v_a; (__pyx_v_m_ptr[2]) = ((4.0 * (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_I.data) + __pyx_t_12)) )))) * ((__pyx_v_SS_res / powf(__pyx_v_SS_tot, 2.0)) + (powf(__pyx_v_SS_res, 2.0) / powf(__pyx_v_SS_tot, 3.0))));
201:
+202: cdef void mse_diff_bi(float_t* m_ptr, float_t[:, :, ::1] SS_m, float_t[:, ::1] I,
static void __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_diff_bi(__pyx_t_5numpy_float64_t *__pyx_v_m_ptr, __Pyx_memviewslice __pyx_v_SS_m, __Pyx_memviewslice __pyx_v_I, __Pyx_memviewslice __pyx_v_rss, __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, __pyx_t_5numpy_float64_t __pyx_v_di, __pyx_t_5numpy_float64_t __pyx_v_dj) { int __pyx_v_b; int __pyx_v_c; int __pyx_v_j; int __pyx_v_k; int __pyx_v_ss_0; int __pyx_v_fs_0; int __pyx_v_ss_1; int __pyx_v_fs_1; int __pyx_v_aa; int __pyx_v_bb; __pyx_t_5numpy_float64_t __pyx_v_ss0; __pyx_t_5numpy_float64_t __pyx_v_fs0; __pyx_t_5numpy_float64_t __pyx_v_ss1; __pyx_t_5numpy_float64_t __pyx_v_fs1; __pyx_t_5numpy_float64_t __pyx_v_dss; __pyx_t_5numpy_float64_t __pyx_v_dfs; __pyx_t_5numpy_float64_t __pyx_v_mse; __pyx_t_5numpy_float64_t __pyx_v_mse_var; __pyx_t_5numpy_float64_t __pyx_v_I0_bi; __pyx_t_5numpy_float64_t __pyx_v_res_0; __pyx_t_5numpy_float64_t __pyx_v_tot_0; __pyx_t_5numpy_float64_t __pyx_v_res; __pyx_t_5numpy_float64_t __pyx_v_tot; __pyx_t_5numpy_float64_t __pyx_v_SS_res; __pyx_t_5numpy_float64_t __pyx_v_SS_tot; /* … */ /* function exit code */ } static void __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_diff_bi(__pyx_t_5numpy_float32_t *__pyx_v_m_ptr, __Pyx_memviewslice __pyx_v_SS_m, __Pyx_memviewslice __pyx_v_I, __Pyx_memviewslice __pyx_v_rss, __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, __pyx_t_5numpy_float32_t __pyx_v_di, __pyx_t_5numpy_float32_t __pyx_v_dj) { int __pyx_v_b; int __pyx_v_c; int __pyx_v_j; int __pyx_v_k; int __pyx_v_ss_0; int __pyx_v_fs_0; int __pyx_v_ss_1; int __pyx_v_fs_1; int __pyx_v_aa; int __pyx_v_bb; __pyx_t_5numpy_float32_t __pyx_v_ss0; __pyx_t_5numpy_float32_t __pyx_v_fs0; __pyx_t_5numpy_float32_t __pyx_v_ss1; __pyx_t_5numpy_float32_t __pyx_v_fs1; __pyx_t_5numpy_float32_t __pyx_v_dss; __pyx_t_5numpy_float32_t __pyx_v_dfs; __pyx_t_5numpy_float32_t __pyx_v_mse; __pyx_t_5numpy_float32_t __pyx_v_mse_var; __pyx_t_5numpy_float32_t __pyx_v_I0_bi; __pyx_t_5numpy_float32_t __pyx_v_res_0; __pyx_t_5numpy_float32_t __pyx_v_tot_0; __pyx_t_5numpy_float32_t __pyx_v_res; __pyx_t_5numpy_float32_t __pyx_v_tot; __pyx_t_5numpy_float32_t __pyx_v_SS_res; __pyx_t_5numpy_float32_t __pyx_v_SS_tot; /* … */ /* function exit code */ }
203: float_t[:, ::1] rss, float_t[:, ::1] I0, float_t[:, :, ::1] u,
204: float_t di0, float_t dj0, float_t di, float_t dj) nogil:
205: cdef:
+206: int b = I.shape[0], c = I.shape[1], j, k
__pyx_v_b = (__pyx_v_I.shape[0]); __pyx_v_c = (__pyx_v_I.shape[1]); /* … */ __pyx_v_b = (__pyx_v_I.shape[0]); __pyx_v_c = (__pyx_v_I.shape[1]);
207: int ss_0, fs_0, ss_1, fs_1
+208: int aa = I0.shape[0], bb = I0.shape[1]
__pyx_v_aa = (__pyx_v_I0.shape[0]); __pyx_v_bb = (__pyx_v_I0.shape[1]); /* … */ __pyx_v_aa = (__pyx_v_I0.shape[0]); __pyx_v_bb = (__pyx_v_I0.shape[1]);
209: float_t ss0, fs0, ss1, fs1, dss, dfs
+210: float_t mse = 0, mse_var = 0, I0_bi, res_0, tot_0, res, tot, SS_res, SS_tot
__pyx_v_mse = 0.0; __pyx_v_mse_var = 0.0; /* … */ __pyx_v_mse = 0.0; __pyx_v_mse_var = 0.0;
+211: for j in range(b):
__pyx_t_1 = __pyx_v_b; __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_b; __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;
+212: for k in range(c):
__pyx_t_4 = __pyx_v_c; __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_c; __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;
+213: ss0 = u[0, j, k] - di0; fs0 = u[1, j, k] - dj0
__pyx_t_7 = 0; __pyx_t_8 = __pyx_v_j; __pyx_t_9 = __pyx_v_k; __pyx_v_ss0 = ((*((__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_9 = 1; __pyx_t_8 = __pyx_v_j; __pyx_t_7 = __pyx_v_k; __pyx_v_fs0 = ((*((__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_7 = 0; __pyx_t_8 = __pyx_v_j; __pyx_t_9 = __pyx_v_k; __pyx_v_ss0 = ((*((__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_t_9 = 1; __pyx_t_8 = __pyx_v_j; __pyx_t_7 = __pyx_v_k; __pyx_v_fs0 = ((*((__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);
+214: ss1 = u[0, j, k] - di; fs1 = u[1, j, k] - dj
__pyx_t_7 = 0; __pyx_t_8 = __pyx_v_j; __pyx_t_9 = __pyx_v_k; __pyx_v_ss1 = ((*((__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_9 = 1; __pyx_t_8 = __pyx_v_j; __pyx_t_7 = __pyx_v_k; __pyx_v_fs1 = ((*((__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_7 = 0; __pyx_t_8 = __pyx_v_j; __pyx_t_9 = __pyx_v_k; __pyx_v_ss1 = ((*((__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_9 = 1; __pyx_t_8 = __pyx_v_j; __pyx_t_7 = __pyx_v_k; __pyx_v_fs1 = ((*((__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);
+215: if ss0 <= 0:
__pyx_t_10 = ((__pyx_v_ss0 <= 0.0) != 0); if (__pyx_t_10) { /* … */ goto __pyx_L7; } /* … */ __pyx_t_10 = ((__pyx_v_ss0 <= 0.0) != 0); if (__pyx_t_10) { /* … */ goto __pyx_L7; }
+216: dss = 0; ss_0 = 0; ss_1 = 0
__pyx_v_dss = 0.0; __pyx_v_ss_0 = 0; __pyx_v_ss_1 = 0; /* … */ __pyx_v_dss = 0.0; __pyx_v_ss_0 = 0; __pyx_v_ss_1 = 0;
+217: elif ss0 >= aa - 1:
__pyx_t_10 = ((__pyx_v_ss0 >= (__pyx_v_aa - 1)) != 0); if (__pyx_t_10) { /* … */ goto __pyx_L7; } /* … */ __pyx_t_10 = ((__pyx_v_ss0 >= (__pyx_v_aa - 1)) != 0); if (__pyx_t_10) { /* … */ goto __pyx_L7; }
+218: dss = 0; ss_0 = aa - 1; ss_1 = aa - 1
__pyx_v_dss = 0.0; __pyx_v_ss_0 = (__pyx_v_aa - 1); __pyx_v_ss_1 = (__pyx_v_aa - 1); /* … */ __pyx_v_dss = 0.0; __pyx_v_ss_0 = (__pyx_v_aa - 1); __pyx_v_ss_1 = (__pyx_v_aa - 1);
219: else:
+220: dss = ss0 - floor(ss0)
/*else*/ { __pyx_v_dss = (__pyx_v_ss0 - floor(__pyx_v_ss0)); /* … */ /*else*/ { __pyx_v_dss = (__pyx_v_ss0 - floor(__pyx_v_ss0));
+221: ss_0 = <int>(floor(ss0)); ss_1 = ss_0 + 1
__pyx_v_ss_0 = ((int)floor(__pyx_v_ss0)); __pyx_v_ss_1 = (__pyx_v_ss_0 + 1); } __pyx_L7:; /* … */ __pyx_v_ss_0 = ((int)floor(__pyx_v_ss0)); __pyx_v_ss_1 = (__pyx_v_ss_0 + 1); } __pyx_L7:;
+222: if fs0 <= 0:
__pyx_t_10 = ((__pyx_v_fs0 <= 0.0) != 0); if (__pyx_t_10) { /* … */ goto __pyx_L8; } /* … */ __pyx_t_10 = ((__pyx_v_fs0 <= 0.0) != 0); if (__pyx_t_10) { /* … */ goto __pyx_L8; }
+223: dfs = 0; fs_0 = 0; fs_1 = 0
__pyx_v_dfs = 0.0; __pyx_v_fs_0 = 0; __pyx_v_fs_1 = 0; /* … */ __pyx_v_dfs = 0.0; __pyx_v_fs_0 = 0; __pyx_v_fs_1 = 0;
+224: elif fs0 >= bb - 1:
__pyx_t_10 = ((__pyx_v_fs0 >= (__pyx_v_bb - 1)) != 0); if (__pyx_t_10) { /* … */ goto __pyx_L8; } /* … */ __pyx_t_10 = ((__pyx_v_fs0 >= (__pyx_v_bb - 1)) != 0); if (__pyx_t_10) { /* … */ goto __pyx_L8; }
+225: dfs = 0; fs_0 = bb - 1; fs_1 = bb - 1
__pyx_v_dfs = 0.0; __pyx_v_fs_0 = (__pyx_v_bb - 1); __pyx_v_fs_1 = (__pyx_v_bb - 1); /* … */ __pyx_v_dfs = 0.0; __pyx_v_fs_0 = (__pyx_v_bb - 1); __pyx_v_fs_1 = (__pyx_v_bb - 1);
226: else:
+227: dfs = fs0 - floor(fs0)
/*else*/ { __pyx_v_dfs = (__pyx_v_fs0 - floor(__pyx_v_fs0)); /* … */ /*else*/ { __pyx_v_dfs = (__pyx_v_fs0 - floor(__pyx_v_fs0));
+228: fs_0 = <int>(floor(fs0)); fs_1 = fs_0 + 1
__pyx_v_fs_0 = ((int)floor(__pyx_v_fs0)); __pyx_v_fs_1 = (__pyx_v_fs_0 + 1); } __pyx_L8:; /* … */ __pyx_v_fs_0 = ((int)floor(__pyx_v_fs0)); __pyx_v_fs_1 = (__pyx_v_fs_0 + 1); } __pyx_L8:;
+229: I0_bi = (1 - dss) * (1 - dfs) * I0[ss_0, fs_0] + \
__pyx_t_7 = __pyx_v_ss_0; __pyx_t_8 = __pyx_v_fs_0; /* … */ __pyx_t_7 = __pyx_v_ss_0; __pyx_t_8 = __pyx_v_fs_0;
+230: (1 - dss) * dfs * I0[ss_0, fs_1] + \
__pyx_t_9 = __pyx_v_ss_0; __pyx_t_11 = __pyx_v_fs_1; /* … */ __pyx_t_9 = __pyx_v_ss_0; __pyx_t_11 = __pyx_v_fs_1;
+231: dss * (1 - dfs) * I0[ss_1, fs_0] + \
__pyx_t_12 = __pyx_v_ss_1; __pyx_t_13 = __pyx_v_fs_0; /* … */ __pyx_v_I0_bi = ((((((1.0 - __pyx_v_dss) * (1.0 - __pyx_v_dfs)) * (*((__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_dss) * __pyx_v_dfs) * (*((__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_dss * (1.0 - __pyx_v_dfs)) * (*((__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_dss * __pyx_v_dfs) * (*((__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_ss_1; __pyx_t_13 = __pyx_v_fs_0; /* … */ __pyx_v_I0_bi = ((((((1.0 - __pyx_v_dss) * (1.0 - __pyx_v_dfs)) * (*((__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_dss) * __pyx_v_dfs) * (*((__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_dss * (1.0 - __pyx_v_dfs)) * (*((__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_dss * __pyx_v_dfs) * (*((__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)) )))));
+232: dss * dfs * I0[ss_1, fs_1]
__pyx_t_14 = __pyx_v_ss_1; __pyx_t_15 = __pyx_v_fs_1; /* … */ __pyx_t_14 = __pyx_v_ss_1; __pyx_t_15 = __pyx_v_fs_1;
+233: res_0 = (I[j, k] - I0_bi)**2
__pyx_t_15 = __pyx_v_j; __pyx_t_14 = __pyx_v_k; __pyx_v_res_0 = pow(((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I.data + __pyx_t_15 * __pyx_v_I.strides[0]) )) + __pyx_t_14)) ))) - __pyx_v_I0_bi), 2.0); /* … */ __pyx_t_15 = __pyx_v_j; __pyx_t_14 = __pyx_v_k; __pyx_v_res_0 = powf(((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I.data + __pyx_t_15 * __pyx_v_I.strides[0]) )) + __pyx_t_14)) ))) - __pyx_v_I0_bi), 2.0);
+234: tot_0 = (I[j, k] - 1)**2
__pyx_t_14 = __pyx_v_j; __pyx_t_15 = __pyx_v_k; __pyx_v_tot_0 = pow(((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I.data + __pyx_t_14 * __pyx_v_I.strides[0]) )) + __pyx_t_15)) ))) - 1.0), 2.0); /* … */ __pyx_t_14 = __pyx_v_j; __pyx_t_15 = __pyx_v_k; __pyx_v_tot_0 = powf(((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I.data + __pyx_t_14 * __pyx_v_I.strides[0]) )) + __pyx_t_15)) ))) - 1.0), 2.0);
235:
+236: if ss1 <= 0:
__pyx_t_10 = ((__pyx_v_ss1 <= 0.0) != 0); if (__pyx_t_10) { /* … */ goto __pyx_L9; } /* … */ __pyx_t_10 = ((__pyx_v_ss1 <= 0.0) != 0); if (__pyx_t_10) { /* … */ goto __pyx_L9; }
+237: dss = 0; ss_0 = 0; ss_1 = 0
__pyx_v_dss = 0.0; __pyx_v_ss_0 = 0; __pyx_v_ss_1 = 0; /* … */ __pyx_v_dss = 0.0; __pyx_v_ss_0 = 0; __pyx_v_ss_1 = 0;
+238: elif ss1 >= aa - 1:
__pyx_t_10 = ((__pyx_v_ss1 >= (__pyx_v_aa - 1)) != 0); if (__pyx_t_10) { /* … */ goto __pyx_L9; } /* … */ __pyx_t_10 = ((__pyx_v_ss1 >= (__pyx_v_aa - 1)) != 0); if (__pyx_t_10) { /* … */ goto __pyx_L9; }
+239: dss = 0; ss_0 = aa - 1; ss_1 = aa - 1
__pyx_v_dss = 0.0; __pyx_v_ss_0 = (__pyx_v_aa - 1); __pyx_v_ss_1 = (__pyx_v_aa - 1); /* … */ __pyx_v_dss = 0.0; __pyx_v_ss_0 = (__pyx_v_aa - 1); __pyx_v_ss_1 = (__pyx_v_aa - 1);
240: else:
+241: dss = ss1 - floor(ss1)
/*else*/ { __pyx_v_dss = (__pyx_v_ss1 - floor(__pyx_v_ss1)); /* … */ /*else*/ { __pyx_v_dss = (__pyx_v_ss1 - floor(__pyx_v_ss1));
+242: ss_0 = <int>(floor(ss1)); ss_1 = ss_0 + 1
__pyx_v_ss_0 = ((int)floor(__pyx_v_ss1)); __pyx_v_ss_1 = (__pyx_v_ss_0 + 1); } __pyx_L9:; /* … */ __pyx_v_ss_0 = ((int)floor(__pyx_v_ss1)); __pyx_v_ss_1 = (__pyx_v_ss_0 + 1); } __pyx_L9:;
+243: if fs1 <= 0:
__pyx_t_10 = ((__pyx_v_fs1 <= 0.0) != 0); if (__pyx_t_10) { /* … */ goto __pyx_L10; } /* … */ __pyx_t_10 = ((__pyx_v_fs1 <= 0.0) != 0); if (__pyx_t_10) { /* … */ goto __pyx_L10; }
+244: dfs = 0; fs_0 = 0; fs_1 = 0
__pyx_v_dfs = 0.0; __pyx_v_fs_0 = 0; __pyx_v_fs_1 = 0; /* … */ __pyx_v_dfs = 0.0; __pyx_v_fs_0 = 0; __pyx_v_fs_1 = 0;
+245: elif fs1 >= bb - 1:
__pyx_t_10 = ((__pyx_v_fs1 >= (__pyx_v_bb - 1)) != 0); if (__pyx_t_10) { /* … */ goto __pyx_L10; } /* … */ __pyx_t_10 = ((__pyx_v_fs1 >= (__pyx_v_bb - 1)) != 0); if (__pyx_t_10) { /* … */ goto __pyx_L10; }
+246: dfs = 0; fs_0 = bb - 1; fs_1 = bb - 1
__pyx_v_dfs = 0.0; __pyx_v_fs_0 = (__pyx_v_bb - 1); __pyx_v_fs_1 = (__pyx_v_bb - 1); /* … */ __pyx_v_dfs = 0.0; __pyx_v_fs_0 = (__pyx_v_bb - 1); __pyx_v_fs_1 = (__pyx_v_bb - 1);
247: else:
+248: dfs = fs1 - floor(fs1)
/*else*/ { __pyx_v_dfs = (__pyx_v_fs1 - floor(__pyx_v_fs1)); /* … */ /*else*/ { __pyx_v_dfs = (__pyx_v_fs1 - floor(__pyx_v_fs1));
+249: fs_0 = <int>(floor(fs1)); fs_1 = fs_0 + 1
__pyx_v_fs_0 = ((int)floor(__pyx_v_fs1)); __pyx_v_fs_1 = (__pyx_v_fs_0 + 1); } __pyx_L10:; /* … */ __pyx_v_fs_0 = ((int)floor(__pyx_v_fs1)); __pyx_v_fs_1 = (__pyx_v_fs_0 + 1); } __pyx_L10:;
+250: I0_bi = (1 - dss) * (1 - dfs) * I0[ss_0, fs_0] + \
__pyx_t_15 = __pyx_v_ss_0; __pyx_t_14 = __pyx_v_fs_0; /* … */ __pyx_t_15 = __pyx_v_ss_0; __pyx_t_14 = __pyx_v_fs_0;
+251: (1 - dss) * dfs * I0[ss_0, fs_1] + \
__pyx_t_13 = __pyx_v_ss_0; __pyx_t_12 = __pyx_v_fs_1; /* … */ __pyx_t_13 = __pyx_v_ss_0; __pyx_t_12 = __pyx_v_fs_1;
+252: dss * (1 - dfs) * I0[ss_1, fs_0] + \
__pyx_t_11 = __pyx_v_ss_1; __pyx_t_9 = __pyx_v_fs_0; /* … */ __pyx_v_I0_bi = ((((((1.0 - __pyx_v_dss) * (1.0 - __pyx_v_dfs)) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_15 * __pyx_v_I0.strides[0]) )) + __pyx_t_14)) )))) + (((1.0 - __pyx_v_dss) * __pyx_v_dfs) * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_13 * __pyx_v_I0.strides[0]) )) + __pyx_t_12)) ))))) + ((__pyx_v_dss * (1.0 - __pyx_v_dfs)) * (*((__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_dss * __pyx_v_dfs) * (*((__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_ss_1; __pyx_t_9 = __pyx_v_fs_0; /* … */ __pyx_v_I0_bi = ((((((1.0 - __pyx_v_dss) * (1.0 - __pyx_v_dfs)) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_15 * __pyx_v_I0.strides[0]) )) + __pyx_t_14)) )))) + (((1.0 - __pyx_v_dss) * __pyx_v_dfs) * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I0.data + __pyx_t_13 * __pyx_v_I0.strides[0]) )) + __pyx_t_12)) ))))) + ((__pyx_v_dss * (1.0 - __pyx_v_dfs)) * (*((__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_dss * __pyx_v_dfs) * (*((__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)) )))));
+253: dss * dfs * I0[ss_1, fs_1]
__pyx_t_8 = __pyx_v_ss_1; __pyx_t_7 = __pyx_v_fs_1; /* … */ __pyx_t_8 = __pyx_v_ss_1; __pyx_t_7 = __pyx_v_fs_1;
+254: res = (I[j, k] - I0_bi)**2
__pyx_t_7 = __pyx_v_j; __pyx_t_8 = __pyx_v_k; __pyx_v_res = pow(((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I.data + __pyx_t_7 * __pyx_v_I.strides[0]) )) + __pyx_t_8)) ))) - __pyx_v_I0_bi), 2.0); /* … */ __pyx_t_7 = __pyx_v_j; __pyx_t_8 = __pyx_v_k; __pyx_v_res = powf(((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I.data + __pyx_t_7 * __pyx_v_I.strides[0]) )) + __pyx_t_8)) ))) - __pyx_v_I0_bi), 2.0);
+255: tot = (I[j, k] - 1)**2
__pyx_t_8 = __pyx_v_j; __pyx_t_7 = __pyx_v_k; __pyx_v_tot = pow(((*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I.data + __pyx_t_8 * __pyx_v_I.strides[0]) )) + __pyx_t_7)) ))) - 1.0), 2.0); /* … */ __pyx_t_8 = __pyx_v_j; __pyx_t_7 = __pyx_v_k; __pyx_v_tot = powf(((*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I.data + __pyx_t_8 * __pyx_v_I.strides[0]) )) + __pyx_t_7)) ))) - 1.0), 2.0);
256:
+257: SS_res = SS_m[0, j, k] - res_0 + res; SS_tot = SS_m[1, j, k] - tot_0 + tot
__pyx_t_7 = 0; __pyx_t_8 = __pyx_v_j; __pyx_t_9 = __pyx_v_k; __pyx_v_SS_res = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_SS_m.data + __pyx_t_7 * __pyx_v_SS_m.strides[0]) ) + __pyx_t_8 * __pyx_v_SS_m.strides[1]) )) + __pyx_t_9)) ))) - __pyx_v_res_0) + __pyx_v_res); __pyx_t_9 = 1; __pyx_t_8 = __pyx_v_j; __pyx_t_7 = __pyx_v_k; __pyx_v_SS_tot = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_SS_m.data + __pyx_t_9 * __pyx_v_SS_m.strides[0]) ) + __pyx_t_8 * __pyx_v_SS_m.strides[1]) )) + __pyx_t_7)) ))) - __pyx_v_tot_0) + __pyx_v_tot); /* … */ __pyx_t_7 = 0; __pyx_t_8 = __pyx_v_j; __pyx_t_9 = __pyx_v_k; __pyx_v_SS_res = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_SS_m.data + __pyx_t_7 * __pyx_v_SS_m.strides[0]) ) + __pyx_t_8 * __pyx_v_SS_m.strides[1]) )) + __pyx_t_9)) ))) - __pyx_v_res_0) + __pyx_v_res); __pyx_t_9 = 1; __pyx_t_8 = __pyx_v_j; __pyx_t_7 = __pyx_v_k; __pyx_v_SS_tot = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_SS_m.data + __pyx_t_9 * __pyx_v_SS_m.strides[0]) ) + __pyx_t_8 * __pyx_v_SS_m.strides[1]) )) + __pyx_t_7)) ))) - __pyx_v_tot_0) + __pyx_v_tot);
+258: mse += SS_res / SS_tot / b / c
__pyx_v_mse = (__pyx_v_mse + (((__pyx_v_SS_res / __pyx_v_SS_tot) / ((__pyx_t_5numpy_float64_t)__pyx_v_b)) / ((__pyx_t_5numpy_float64_t)__pyx_v_c))); /* … */ __pyx_v_mse = (__pyx_v_mse + (((__pyx_v_SS_res / __pyx_v_SS_tot) / ((__pyx_t_5numpy_float32_t)__pyx_v_b)) / ((__pyx_t_5numpy_float32_t)__pyx_v_c)));
+259: mse_var += 4 * rss[j, k] * (SS_res / SS_tot**2 + SS_res**2 / SS_tot**3) / b**2 / c**2
__pyx_t_7 = __pyx_v_j; __pyx_t_8 = __pyx_v_k; __pyx_v_mse_var = (__pyx_v_mse_var + ((((4.0 * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_rss.data + __pyx_t_7 * __pyx_v_rss.strides[0]) )) + __pyx_t_8)) )))) * ((__pyx_v_SS_res / pow(__pyx_v_SS_tot, 2.0)) + (pow(__pyx_v_SS_res, 2.0) / pow(__pyx_v_SS_tot, 3.0)))) / ((__pyx_t_5numpy_float64_t)__Pyx_pow_long(((long)__pyx_v_b), 2))) / ((__pyx_t_5numpy_float64_t)__Pyx_pow_long(((long)__pyx_v_c), 2)))); } } /* … */ __pyx_t_7 = __pyx_v_j; __pyx_t_8 = __pyx_v_k; __pyx_v_mse_var = (__pyx_v_mse_var + ((((4.0 * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_rss.data + __pyx_t_7 * __pyx_v_rss.strides[0]) )) + __pyx_t_8)) )))) * ((__pyx_v_SS_res / powf(__pyx_v_SS_tot, 2.0)) + (powf(__pyx_v_SS_res, 2.0) / powf(__pyx_v_SS_tot, 3.0)))) / ((__pyx_t_5numpy_float32_t)__Pyx_pow_long(((long)__pyx_v_b), 2))) / ((__pyx_t_5numpy_float32_t)__Pyx_pow_long(((long)__pyx_v_c), 2)))); } }
+260: m_ptr[0] = mse; m_ptr[1] = mse_var
(__pyx_v_m_ptr[0]) = __pyx_v_mse; (__pyx_v_m_ptr[1]) = __pyx_v_mse_var; /* … */ (__pyx_v_m_ptr[0]) = __pyx_v_mse; (__pyx_v_m_ptr[1]) = __pyx_v_mse_var;
261:
+262: cdef void krig_data_c(float_t[::1] I, float_t[:, :, ::1] I_n, float_t[:, ::1] W, float_t[:, :, ::1] u,
static void __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_krig_data_c(__Pyx_memviewslice __pyx_v_I, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, int __pyx_v_j, int __pyx_v_k, __pyx_t_5numpy_float64_t __pyx_v_ls) { int __pyx_v_a; int __pyx_v_b; int __pyx_v_c; int __pyx_v_i; int __pyx_v_jj; int __pyx_v_kk; int __pyx_v_djk; int __pyx_v_jj0; int __pyx_v_jj1; int __pyx_v_kk0; int __pyx_v_kk1; __pyx_t_5numpy_float64_t __pyx_v_w0; __pyx_t_5numpy_float64_t __pyx_v_r; /* … */ /* function exit code */ } static void __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_krig_data_c(__Pyx_memviewslice __pyx_v_I, __Pyx_memviewslice __pyx_v_I_n, __Pyx_memviewslice __pyx_v_W, __Pyx_memviewslice __pyx_v_u, int __pyx_v_j, int __pyx_v_k, __pyx_t_5numpy_float32_t __pyx_v_ls) { int __pyx_v_a; int __pyx_v_b; int __pyx_v_c; int __pyx_v_i; int __pyx_v_jj; int __pyx_v_kk; int __pyx_v_djk; int __pyx_v_jj0; int __pyx_v_jj1; int __pyx_v_kk0; int __pyx_v_kk1; __pyx_t_5numpy_float32_t __pyx_v_w0; __pyx_t_5numpy_float32_t __pyx_v_r; /* … */ /* function exit code */ }
263: int j, int k, float_t ls) nogil:
264: cdef:
+265: int a = I_n.shape[0], b = I_n.shape[1], c = I_n.shape[2], i, jj, kk
__pyx_v_a = (__pyx_v_I_n.shape[0]); __pyx_v_b = (__pyx_v_I_n.shape[1]); __pyx_v_c = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_a = (__pyx_v_I_n.shape[0]); __pyx_v_b = (__pyx_v_I_n.shape[1]); __pyx_v_c = (__pyx_v_I_n.shape[2]);
+266: int djk = <int>(ceil(2 * ls))
__pyx_v_djk = ((int)ceil((2.0 * __pyx_v_ls))); /* … */ __pyx_v_djk = ((int)ceil((2.0 * __pyx_v_ls)));
+267: int jj0 = j - djk if j - djk > 0 else 0
if ((((__pyx_v_j - __pyx_v_djk) > 0) != 0)) { __pyx_t_1 = (__pyx_v_j - __pyx_v_djk); } else { __pyx_t_1 = 0; } __pyx_v_jj0 = __pyx_t_1; /* … */ if ((((__pyx_v_j - __pyx_v_djk) > 0) != 0)) { __pyx_t_1 = (__pyx_v_j - __pyx_v_djk); } else { __pyx_t_1 = 0; } __pyx_v_jj0 = __pyx_t_1;
+268: int jj1 = j + djk if j + djk < b else b
if ((((__pyx_v_j + __pyx_v_djk) < __pyx_v_b) != 0)) { __pyx_t_1 = (__pyx_v_j + __pyx_v_djk); } else { __pyx_t_1 = __pyx_v_b; } __pyx_v_jj1 = __pyx_t_1; /* … */ if ((((__pyx_v_j + __pyx_v_djk) < __pyx_v_b) != 0)) { __pyx_t_1 = (__pyx_v_j + __pyx_v_djk); } else { __pyx_t_1 = __pyx_v_b; } __pyx_v_jj1 = __pyx_t_1;
+269: int kk0 = k - djk if k - djk > 0 else 0
if ((((__pyx_v_k - __pyx_v_djk) > 0) != 0)) { __pyx_t_1 = (__pyx_v_k - __pyx_v_djk); } else { __pyx_t_1 = 0; } __pyx_v_kk0 = __pyx_t_1; /* … */ if ((((__pyx_v_k - __pyx_v_djk) > 0) != 0)) { __pyx_t_1 = (__pyx_v_k - __pyx_v_djk); } else { __pyx_t_1 = 0; } __pyx_v_kk0 = __pyx_t_1;
+270: int kk1 = k + djk if k + djk < c else c
if ((((__pyx_v_k + __pyx_v_djk) < __pyx_v_c) != 0)) { __pyx_t_1 = (__pyx_v_k + __pyx_v_djk); } else { __pyx_t_1 = __pyx_v_c; } __pyx_v_kk1 = __pyx_t_1; /* … */ if ((((__pyx_v_k + __pyx_v_djk) < __pyx_v_c) != 0)) { __pyx_t_1 = (__pyx_v_k + __pyx_v_djk); } else { __pyx_t_1 = __pyx_v_c; } __pyx_v_kk1 = __pyx_t_1;
+271: float_t w0 = 0, r
__pyx_v_w0 = 0.0; /* … */ __pyx_v_w0 = 0.0;
+272: for i in range(a + 1):
__pyx_t_2 = (__pyx_v_a + 1); __pyx_t_3 = __pyx_t_2; for (__pyx_t_1 = 0; __pyx_t_1 < __pyx_t_3; __pyx_t_1+=1) { __pyx_v_i = __pyx_t_1; /* … */ __pyx_t_2 = (__pyx_v_a + 1); __pyx_t_3 = __pyx_t_2; for (__pyx_t_1 = 0; __pyx_t_1 < __pyx_t_3; __pyx_t_1+=1) { __pyx_v_i = __pyx_t_1;
+273: I[i] = 0
__pyx_t_4 = __pyx_v_i; *((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_I.data) + __pyx_t_4)) )) = 0.0; } /* … */ __pyx_t_4 = __pyx_v_i; *((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_I.data) + __pyx_t_4)) )) = 0.0; }
+274: for jj in range(jj0, jj1):
__pyx_t_1 = __pyx_v_jj1; __pyx_t_5 = __pyx_t_1; for (__pyx_t_6 = __pyx_v_jj0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_jj = __pyx_t_6; /* … */ __pyx_t_1 = __pyx_v_jj1; __pyx_t_5 = __pyx_t_1; for (__pyx_t_6 = __pyx_v_jj0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_jj = __pyx_t_6;
+275: 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;
+276: r = rbf((u[0, jj, kk] - u[0, j, k])**2 + (u[1, jj, kk] - u[1, j, k])**2, ls)
__pyx_t_4 = 0; __pyx_t_10 = __pyx_v_jj; __pyx_t_11 = __pyx_v_kk; __pyx_t_12 = 0; __pyx_t_13 = __pyx_v_j; __pyx_t_14 = __pyx_v_k; __pyx_t_15 = 1; __pyx_t_16 = __pyx_v_jj; __pyx_t_17 = __pyx_v_kk; __pyx_t_18 = 1; __pyx_t_19 = __pyx_v_j; __pyx_t_20 = __pyx_v_k; __pyx_v_r = __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_rbf((pow(((*((__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_10 * __pyx_v_u.strides[1]) )) + __pyx_t_11)) ))) - (*((__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)) )))), 2.0) + pow(((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_15 * __pyx_v_u.strides[0]) ) + __pyx_t_16 * __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_u.data + __pyx_t_18 * __pyx_v_u.strides[0]) ) + __pyx_t_19 * __pyx_v_u.strides[1]) )) + __pyx_t_20)) )))), 2.0)), __pyx_v_ls); /* … */ __pyx_t_4 = 0; __pyx_t_10 = __pyx_v_jj; __pyx_t_11 = __pyx_v_kk; __pyx_t_12 = 0; __pyx_t_13 = __pyx_v_j; __pyx_t_14 = __pyx_v_k; __pyx_t_15 = 1; __pyx_t_16 = __pyx_v_jj; __pyx_t_17 = __pyx_v_kk; __pyx_t_18 = 1; __pyx_t_19 = __pyx_v_j; __pyx_t_20 = __pyx_v_k; __pyx_v_r = __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_rbf((powf(((*((__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_10 * __pyx_v_u.strides[1]) )) + __pyx_t_11)) ))) - (*((__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)) )))), 2.0) + powf(((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_15 * __pyx_v_u.strides[0]) ) + __pyx_t_16 * __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_u.data + __pyx_t_18 * __pyx_v_u.strides[0]) ) + __pyx_t_19 * __pyx_v_u.strides[1]) )) + __pyx_t_20)) )))), 2.0)), __pyx_v_ls);
+277: w0 += r
__pyx_v_w0 = (__pyx_v_w0 + __pyx_v_r); /* … */ __pyx_v_w0 = (__pyx_v_w0 + __pyx_v_r);
+278: if w0 * W[jj, kk]:
__pyx_t_20 = __pyx_v_jj; __pyx_t_19 = __pyx_v_kk; __pyx_t_21 = ((__pyx_v_w0 * (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_20 * __pyx_v_W.strides[0]) )) + __pyx_t_19)) )))) != 0); if (__pyx_t_21) { /* … */ } } } /* … */ __pyx_t_20 = __pyx_v_jj; __pyx_t_19 = __pyx_v_kk; __pyx_t_21 = ((__pyx_v_w0 * (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_W.data + __pyx_t_20 * __pyx_v_W.strides[0]) )) + __pyx_t_19)) )))) != 0); if (__pyx_t_21) { /* … */ } } }
+279: I[a] += r**2 / W[jj, kk]
__pyx_t_19 = __pyx_v_jj; __pyx_t_20 = __pyx_v_kk; __pyx_t_18 = __pyx_v_a; *((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_I.data) + __pyx_t_18)) )) += (pow(__pyx_v_r, 2.0) / (*((__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_20)) )))); /* … */ __pyx_t_19 = __pyx_v_jj; __pyx_t_20 = __pyx_v_kk; __pyx_t_18 = __pyx_v_a; *((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_I.data) + __pyx_t_18)) )) += (powf(__pyx_v_r, 2.0) / (*((__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_20)) ))));
+280: for i in range(a):
__pyx_t_22 = __pyx_v_a; __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 = __pyx_v_a; __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;
+281: I[i] += r / w0 * (I_n[i, jj, kk] / W[jj, kk] - I[i])
__pyx_t_20 = __pyx_v_i; __pyx_t_19 = __pyx_v_jj; __pyx_t_18 = __pyx_v_kk; __pyx_t_17 = __pyx_v_jj; __pyx_t_16 = __pyx_v_kk; __pyx_t_15 = __pyx_v_i; __pyx_t_14 = __pyx_v_i; *((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_I.data) + __pyx_t_14)) )) += ((__pyx_v_r / __pyx_v_w0) * (((*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_20 * __pyx_v_I_n.strides[0]) ) + __pyx_t_19 * __pyx_v_I_n.strides[1]) )) + __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=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_I.data) + __pyx_t_15)) ))))); } /* … */ __pyx_t_20 = __pyx_v_i; __pyx_t_19 = __pyx_v_jj; __pyx_t_18 = __pyx_v_kk; __pyx_t_17 = __pyx_v_jj; __pyx_t_16 = __pyx_v_kk; __pyx_t_15 = __pyx_v_i; __pyx_t_14 = __pyx_v_i; *((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_I.data) + __pyx_t_14)) )) += ((__pyx_v_r / __pyx_v_w0) * (((*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I_n.data + __pyx_t_20 * __pyx_v_I_n.strides[0]) ) + __pyx_t_19 * __pyx_v_I_n.strides[1]) )) + __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=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_I.data) + __pyx_t_15)) ))))); }
+282: if w0:
__pyx_t_21 = (__pyx_v_w0 != 0); if (__pyx_t_21) { /* … */ } /* … */ __pyx_t_21 = (__pyx_v_w0 != 0); if (__pyx_t_21) { /* … */ }
+283: I[a] /= w0**2
__pyx_t_15 = __pyx_v_a; *((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_I.data) + __pyx_t_15)) )) /= pow(__pyx_v_w0, 2.0); /* … */ __pyx_t_15 = __pyx_v_a; *((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_I.data) + __pyx_t_15)) )) /= powf(__pyx_v_w0, 2.0);
284:
+285: cdef void subpixel_ref_1d(float_t[::1] x, float_t* mse_m, float_t mu) nogil:
static void __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_subpixel_ref_1d(__Pyx_memviewslice __pyx_v_x, __pyx_t_5numpy_float64_t *__pyx_v_mse_m, __pyx_t_5numpy_float64_t __pyx_v_mu) { __pyx_t_5numpy_float64_t __pyx_v_dfs; __pyx_t_5numpy_float64_t __pyx_v_det; __pyx_t_5numpy_float64_t __pyx_v_dd; /* … */ /* function exit code */ } static void __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_subpixel_ref_1d(__Pyx_memviewslice __pyx_v_x, __pyx_t_5numpy_float32_t *__pyx_v_mse_m, __pyx_t_5numpy_float32_t __pyx_v_mu) { __pyx_t_5numpy_float32_t __pyx_v_dfs; __pyx_t_5numpy_float32_t __pyx_v_det; __pyx_t_5numpy_float32_t __pyx_v_dd; /* … */ /* function exit code */ }
286: cdef:
+287: float_t dfs = 0, det, dd
__pyx_v_dfs = 0.0; /* … */ __pyx_v_dfs = 0.0;
+288: det = 4 * (mse_m[2] + mse_m[0] - 2 * mse_m[1])
__pyx_v_det = (4.0 * (((__pyx_v_mse_m[2]) + (__pyx_v_mse_m[0])) - (2.0 * (__pyx_v_mse_m[1])))); /* … */ __pyx_v_det = (4.0 * (((__pyx_v_mse_m[2]) + (__pyx_v_mse_m[0])) - (2.0 * (__pyx_v_mse_m[1]))));
+289: if det != 0:
__pyx_t_1 = ((__pyx_v_det != 0.0) != 0); if (__pyx_t_1) { /* … */ } /* … */ __pyx_t_1 = ((__pyx_v_det != 0.0) != 0); if (__pyx_t_1) { /* … */ }
+290: dfs = (mse_m[0] - mse_m[2]) / det * mu
__pyx_v_dfs = ((((__pyx_v_mse_m[0]) - (__pyx_v_mse_m[2])) / __pyx_v_det) * __pyx_v_mu); /* … */ __pyx_v_dfs = ((((__pyx_v_mse_m[0]) - (__pyx_v_mse_m[2])) / __pyx_v_det) * __pyx_v_mu);
+291: dd = sqrt(dfs**2)
__pyx_v_dd = sqrt(pow(__pyx_v_dfs, 2.0)); /* … */ __pyx_v_dd = sqrt(powf(__pyx_v_dfs, 2.0));
+292: if dd > 1:
__pyx_t_1 = ((__pyx_v_dd > 1.0) != 0); if (__pyx_t_1) { /* … */ } /* … */ __pyx_t_1 = ((__pyx_v_dd > 1.0) != 0); if (__pyx_t_1) { /* … */ }
+293: dfs /= dd
__pyx_v_dfs = (__pyx_v_dfs / __pyx_v_dd); /* … */ __pyx_v_dfs = (__pyx_v_dfs / __pyx_v_dd);
294:
+295: x[1] += dfs
__pyx_t_2 = 1; *((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_x.data) + __pyx_t_2)) )) += __pyx_v_dfs; /* … */ __pyx_t_2 = 1; *((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_x.data) + __pyx_t_2)) )) += __pyx_v_dfs;
296:
+297: cdef void subpixel_ref_2d(float_t[::1] x, float_t* mse_m, float_t mu) nogil:
static void __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_subpixel_ref_2d(__Pyx_memviewslice __pyx_v_x, __pyx_t_5numpy_float64_t *__pyx_v_mse_m, __pyx_t_5numpy_float64_t __pyx_v_mu) { __pyx_t_5numpy_float64_t __pyx_v_dss; __pyx_t_5numpy_float64_t __pyx_v_dfs; __pyx_t_5numpy_float64_t __pyx_v_det; __pyx_t_5numpy_float64_t __pyx_v_dd; /* … */ /* function exit code */ } static void __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_subpixel_ref_2d(__Pyx_memviewslice __pyx_v_x, __pyx_t_5numpy_float32_t *__pyx_v_mse_m, __pyx_t_5numpy_float32_t __pyx_v_mu) { __pyx_t_5numpy_float32_t __pyx_v_dss; __pyx_t_5numpy_float32_t __pyx_v_dfs; __pyx_t_5numpy_float32_t __pyx_v_det; __pyx_t_5numpy_float32_t __pyx_v_dd; /* … */ /* function exit code */ }
298: cdef:
+299: float_t dss = 0, dfs = 0, det, dd
__pyx_v_dss = 0.0; __pyx_v_dfs = 0.0; /* … */ __pyx_v_dss = 0.0; __pyx_v_dfs = 0.0;
+300: det = 4 * (mse_m[5] + mse_m[1] - 2 * mse_m[3]) * (mse_m[4] + mse_m[2] - 2 * mse_m[3]) - \
__pyx_v_det = (((4.0 * (((__pyx_v_mse_m[5]) + (__pyx_v_mse_m[1])) - (2.0 * (__pyx_v_mse_m[3])))) * (((__pyx_v_mse_m[4]) + (__pyx_v_mse_m[2])) - (2.0 * (__pyx_v_mse_m[3])))) - pow((((((((__pyx_v_mse_m[6]) + (__pyx_v_mse_m[0])) + (2.0 * (__pyx_v_mse_m[3]))) - (__pyx_v_mse_m[1])) - (__pyx_v_mse_m[5])) - (__pyx_v_mse_m[2])) - (__pyx_v_mse_m[4])), 2.0)); /* … */ __pyx_v_det = (((4.0 * (((__pyx_v_mse_m[5]) + (__pyx_v_mse_m[1])) - (2.0 * (__pyx_v_mse_m[3])))) * (((__pyx_v_mse_m[4]) + (__pyx_v_mse_m[2])) - (2.0 * (__pyx_v_mse_m[3])))) - powf((((((((__pyx_v_mse_m[6]) + (__pyx_v_mse_m[0])) + (2.0 * (__pyx_v_mse_m[3]))) - (__pyx_v_mse_m[1])) - (__pyx_v_mse_m[5])) - (__pyx_v_mse_m[2])) - (__pyx_v_mse_m[4])), 2.0));
301: (mse_m[6] + mse_m[0] + 2 * mse_m[3] - mse_m[1] - mse_m[5] - mse_m[2] - mse_m[4])**2
+302: if det != 0:
__pyx_t_1 = ((__pyx_v_det != 0.0) != 0); if (__pyx_t_1) { /* … */ } /* … */ __pyx_t_1 = ((__pyx_v_det != 0.0) != 0); if (__pyx_t_1) { /* … */ }
303: dss = ((mse_m[6] + mse_m[0] + 2 * mse_m[3] - mse_m[1] - mse_m[5] - mse_m[2] - mse_m[4]) * \
304: (mse_m[4] - mse_m[2]) - 2 * (mse_m[4] + mse_m[2] - 2 * mse_m[3]) * \
+305: (mse_m[5] - mse_m[1])) / det * mu / 2
__pyx_v_dss = ((((((((((((__pyx_v_mse_m[6]) + (__pyx_v_mse_m[0])) + (2.0 * (__pyx_v_mse_m[3]))) - (__pyx_v_mse_m[1])) - (__pyx_v_mse_m[5])) - (__pyx_v_mse_m[2])) - (__pyx_v_mse_m[4])) * ((__pyx_v_mse_m[4]) - (__pyx_v_mse_m[2]))) - ((2.0 * (((__pyx_v_mse_m[4]) + (__pyx_v_mse_m[2])) - (2.0 * (__pyx_v_mse_m[3])))) * ((__pyx_v_mse_m[5]) - (__pyx_v_mse_m[1])))) / __pyx_v_det) * __pyx_v_mu) / 2.0); /* … */ __pyx_v_dss = ((((((((((((__pyx_v_mse_m[6]) + (__pyx_v_mse_m[0])) + (2.0 * (__pyx_v_mse_m[3]))) - (__pyx_v_mse_m[1])) - (__pyx_v_mse_m[5])) - (__pyx_v_mse_m[2])) - (__pyx_v_mse_m[4])) * ((__pyx_v_mse_m[4]) - (__pyx_v_mse_m[2]))) - ((2.0 * (((__pyx_v_mse_m[4]) + (__pyx_v_mse_m[2])) - (2.0 * (__pyx_v_mse_m[3])))) * ((__pyx_v_mse_m[5]) - (__pyx_v_mse_m[1])))) / __pyx_v_det) * __pyx_v_mu) / 2.0);
306: dfs = ((mse_m[6] + mse_m[0] + 2 * mse_m[3] - mse_m[1] - mse_m[5] - mse_m[2] - mse_m[4]) * \
307: (mse_m[5] - mse_m[1]) - 2 * (mse_m[5] + mse_m[1] - 2 * mse_m[3]) * \
+308: (mse_m[4] - mse_m[2])) / det * mu / 2
__pyx_v_dfs = ((((((((((((__pyx_v_mse_m[6]) + (__pyx_v_mse_m[0])) + (2.0 * (__pyx_v_mse_m[3]))) - (__pyx_v_mse_m[1])) - (__pyx_v_mse_m[5])) - (__pyx_v_mse_m[2])) - (__pyx_v_mse_m[4])) * ((__pyx_v_mse_m[5]) - (__pyx_v_mse_m[1]))) - ((2.0 * (((__pyx_v_mse_m[5]) + (__pyx_v_mse_m[1])) - (2.0 * (__pyx_v_mse_m[3])))) * ((__pyx_v_mse_m[4]) - (__pyx_v_mse_m[2])))) / __pyx_v_det) * __pyx_v_mu) / 2.0); /* … */ __pyx_v_dfs = ((((((((((((__pyx_v_mse_m[6]) + (__pyx_v_mse_m[0])) + (2.0 * (__pyx_v_mse_m[3]))) - (__pyx_v_mse_m[1])) - (__pyx_v_mse_m[5])) - (__pyx_v_mse_m[2])) - (__pyx_v_mse_m[4])) * ((__pyx_v_mse_m[5]) - (__pyx_v_mse_m[1]))) - ((2.0 * (((__pyx_v_mse_m[5]) + (__pyx_v_mse_m[1])) - (2.0 * (__pyx_v_mse_m[3])))) * ((__pyx_v_mse_m[4]) - (__pyx_v_mse_m[2])))) / __pyx_v_det) * __pyx_v_mu) / 2.0);
+309: dd = sqrt(dfs**2 + dss**2)
__pyx_v_dd = sqrt((pow(__pyx_v_dfs, 2.0) + pow(__pyx_v_dss, 2.0))); /* … */ __pyx_v_dd = sqrt((powf(__pyx_v_dfs, 2.0) + powf(__pyx_v_dss, 2.0)));
+310: if dd > 1:
__pyx_t_1 = ((__pyx_v_dd > 1.0) != 0); if (__pyx_t_1) { /* … */ } /* … */ __pyx_t_1 = ((__pyx_v_dd > 1.0) != 0); if (__pyx_t_1) { /* … */ }
+311: dss /= dd; dfs /= dd
__pyx_v_dss = (__pyx_v_dss / __pyx_v_dd); __pyx_v_dfs = (__pyx_v_dfs / __pyx_v_dd); /* … */ __pyx_v_dss = (__pyx_v_dss / __pyx_v_dd); __pyx_v_dfs = (__pyx_v_dfs / __pyx_v_dd);
312:
+313: x[0] += dss; x[1] += dfs
__pyx_t_2 = 0; *((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_x.data) + __pyx_t_2)) )) += __pyx_v_dss; __pyx_t_2 = 1; *((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_x.data) + __pyx_t_2)) )) += __pyx_v_dfs; /* … */ __pyx_t_2 = 0; *((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_x.data) + __pyx_t_2)) )) += __pyx_v_dss; __pyx_t_2 = 1; *((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_x.data) + __pyx_t_2)) )) += __pyx_v_dfs;
314:
+315: cdef void update_pm_c(float_t[::1] I, float_t[:, ::1] I0, float_t[::1] u,
static void __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_update_pm_c(__Pyx_memviewslice __pyx_v_I, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, int __pyx_v_sw_ss, int __pyx_v_sw_fs) { int __pyx_v_ss_min; int __pyx_v_fs_min; int __pyx_v_ss_max; int __pyx_v_fs_max; int __pyx_v_ss; int __pyx_v_fs; __pyx_t_5numpy_float64_t __pyx_v_mse_min; __pyx_t_5numpy_float64_t __pyx_v_mse_max; __pyx_t_5numpy_float64_t __pyx_v_mse_var; __pyx_t_5numpy_float64_t __pyx_v_mse; __pyx_t_5numpy_float64_t __pyx_v_l1; __pyx_t_5numpy_float64_t __pyx_v_mu; __pyx_t_5numpy_float64_t __pyx_v_mv_ptr[3]; __pyx_t_5numpy_float64_t __pyx_v_mse_m[7]; /* … */ /* function exit code */ } static void __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_update_pm_c(__Pyx_memviewslice __pyx_v_I, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, int __pyx_v_sw_ss, int __pyx_v_sw_fs) { int __pyx_v_ss_min; int __pyx_v_fs_min; int __pyx_v_ss_max; int __pyx_v_fs_max; int __pyx_v_ss; int __pyx_v_fs; __pyx_t_5numpy_float32_t __pyx_v_mse_min; __pyx_t_5numpy_float32_t __pyx_v_mse_max; __pyx_t_5numpy_float32_t __pyx_v_mse_var; __pyx_t_5numpy_float32_t __pyx_v_mse; __pyx_t_5numpy_float32_t __pyx_v_l1; __pyx_t_5numpy_float32_t __pyx_v_mu; __pyx_t_5numpy_float32_t __pyx_v_mv_ptr[3]; __pyx_t_5numpy_float32_t __pyx_v_mse_m[7]; /* … */ /* function exit code */ }
316: float_t[::1] di, float_t[::1] dj, int sw_ss, int sw_fs) nogil:
317: cdef:
+318: int ss_min = -sw_ss, fs_min = -sw_fs, ss_max = -sw_ss, fs_max = -sw_fs, ss, fs
__pyx_v_ss_min = (-__pyx_v_sw_ss); __pyx_v_fs_min = (-__pyx_v_sw_fs); __pyx_v_ss_max = (-__pyx_v_sw_ss); __pyx_v_fs_max = (-__pyx_v_sw_fs); /* … */ __pyx_v_ss_min = (-__pyx_v_sw_ss); __pyx_v_fs_min = (-__pyx_v_sw_fs); __pyx_v_ss_max = (-__pyx_v_sw_ss); __pyx_v_fs_max = (-__pyx_v_sw_fs);
+319: float_t mse_min = FLOAT_MAX, mse_max = -FLOAT_MAX, mse_var = FLOAT_MAX, mse, l1, mu
__pyx_v_mse_min = 1.7976931348623157e+308; __pyx_v_mse_max = -1.7976931348623157e+308; __pyx_v_mse_var = 1.7976931348623157e+308; /* … */ __pyx_v_mse_min = 1.7976931348623157e+308; __pyx_v_mse_max = -1.7976931348623157e+308; __pyx_v_mse_var = 1.7976931348623157e+308;
320: float_t mv_ptr[3]
321: float_t mse_m[7]
+322: for ss in range(-sw_ss, sw_ss + 1):
__pyx_t_1 = (__pyx_v_sw_ss + 1); __pyx_t_2 = __pyx_t_1; for (__pyx_t_3 = (-__pyx_v_sw_ss); __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_ss = __pyx_t_3; /* … */ __pyx_t_1 = (__pyx_v_sw_ss + 1); __pyx_t_2 = __pyx_t_1; for (__pyx_t_3 = (-__pyx_v_sw_ss); __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_ss = __pyx_t_3;
+323: for fs in range(-sw_fs, sw_fs + 1):
__pyx_t_4 = (__pyx_v_sw_fs + 1); __pyx_t_5 = __pyx_t_4; for (__pyx_t_6 = (-__pyx_v_sw_fs); __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_fs = __pyx_t_6; /* … */ __pyx_t_4 = (__pyx_v_sw_fs + 1); __pyx_t_5 = __pyx_t_4; for (__pyx_t_6 = (-__pyx_v_sw_fs); __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_fs = __pyx_t_6;
+324: mse_bi(mv_ptr, I, I0, di, dj, u[0] + ss, u[1] + fs)
__pyx_t_7 = 0; __pyx_t_8 = 1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mv_ptr, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_7)) ))) + __pyx_v_ss), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_8)) ))) + __pyx_v_fs)); /* … */ __pyx_t_7 = 0; __pyx_t_8 = 1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mv_ptr, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_7)) ))) + __pyx_v_ss), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_8)) ))) + __pyx_v_fs));
+325: mse = mv_ptr[0] / mv_ptr[1]
__pyx_v_mse = ((__pyx_v_mv_ptr[0]) / (__pyx_v_mv_ptr[1])); /* … */ __pyx_v_mse = ((__pyx_v_mv_ptr[0]) / (__pyx_v_mv_ptr[1]));
+326: if mse < mse_min:
__pyx_t_9 = ((__pyx_v_mse < __pyx_v_mse_min) != 0); if (__pyx_t_9) { /* … */ } /* … */ __pyx_t_9 = ((__pyx_v_mse < __pyx_v_mse_min) != 0); if (__pyx_t_9) { /* … */ }
+327: mse_min = mse; mse_var = mv_ptr[2]; ss_min = ss; fs_min = fs;
__pyx_v_mse_min = __pyx_v_mse; __pyx_v_mse_var = (__pyx_v_mv_ptr[2]); __pyx_v_ss_min = __pyx_v_ss; __pyx_v_fs_min = __pyx_v_fs; /* … */ __pyx_v_mse_min = __pyx_v_mse; __pyx_v_mse_var = (__pyx_v_mv_ptr[2]); __pyx_v_ss_min = __pyx_v_ss; __pyx_v_fs_min = __pyx_v_fs;
+328: if mse > mse_max:
__pyx_t_9 = ((__pyx_v_mse > __pyx_v_mse_max) != 0); if (__pyx_t_9) { /* … */ } } } /* … */ __pyx_t_9 = ((__pyx_v_mse > __pyx_v_mse_max) != 0); if (__pyx_t_9) { /* … */ } } }
+329: mse_max = mse; ss_max = ss; fs_max = fs
__pyx_v_mse_max = __pyx_v_mse; __pyx_v_ss_max = __pyx_v_ss; __pyx_v_fs_max = __pyx_v_fs; /* … */ __pyx_v_mse_max = __pyx_v_mse; __pyx_v_ss_max = __pyx_v_ss; __pyx_v_fs_max = __pyx_v_fs;
+330: u[0] += ss_min; u[1] += fs_min
__pyx_t_8 = 0; *((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_8)) )) += __pyx_v_ss_min; __pyx_t_8 = 1; *((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_8)) )) += __pyx_v_fs_min; /* … */ __pyx_t_8 = 0; *((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_8)) )) += __pyx_v_ss_min; __pyx_t_8 = 1; *((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_8)) )) += __pyx_v_fs_min;
+331: l1 = 2 * (mse_max - mse_min) / ((ss_max - ss_min)**2 + (fs_max - fs_min)**2)
__pyx_v_l1 = ((2.0 * (__pyx_v_mse_max - __pyx_v_mse_min)) / ((__pyx_t_5numpy_float64_t)(__Pyx_pow_long(((long)(__pyx_v_ss_max - __pyx_v_ss_min)), 2) + __Pyx_pow_long(((long)(__pyx_v_fs_max - __pyx_v_fs_min)), 2)))); /* … */ __pyx_v_l1 = ((2.0 * (__pyx_v_mse_max - __pyx_v_mse_min)) / ((__pyx_t_5numpy_float32_t)(__Pyx_pow_long(((long)(__pyx_v_ss_max - __pyx_v_ss_min)), 2) + __Pyx_pow_long(((long)(__pyx_v_fs_max - __pyx_v_fs_min)), 2))));
+332: mu = (3 * mse_var**0.5 / l1)**0.33
__pyx_v_mu = pow(((3.0 * pow(__pyx_v_mse_var, ((__pyx_t_5numpy_float64_t)0.5))) / __pyx_v_l1), ((__pyx_t_5numpy_float64_t)0.33)); /* … */ __pyx_v_mu = pow(((3.0 * pow(((double)__pyx_v_mse_var), 0.5)) / ((double)__pyx_v_l1)), 0.33);
+333: mu = mu if mu > 2 else 2
if (((__pyx_v_mu > 2.0) != 0)) { __pyx_t_10 = __pyx_v_mu; } else { __pyx_t_10 = 2.0; } __pyx_v_mu = __pyx_t_10; /* … */ if (((__pyx_v_mu > 2.0) != 0)) { __pyx_t_10 = __pyx_v_mu; } else { __pyx_t_10 = 2.0; } __pyx_v_mu = __pyx_t_10;
+334: if sw_ss:
__pyx_t_9 = (__pyx_v_sw_ss != 0); if (__pyx_t_9) { /* … */ goto __pyx_L9; } /* … */ __pyx_t_9 = (__pyx_v_sw_ss != 0); if (__pyx_t_9) { /* … */ goto __pyx_L9; }
+335: mse_bi(mv_ptr, I, I0, di, dj, u[0] - mu / 2, u[1] - mu / 2)
__pyx_t_8 = 0; __pyx_t_7 = 1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mv_ptr, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_8)) ))) - (__pyx_v_mu / 2.0)), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_7)) ))) - (__pyx_v_mu / 2.0))); /* … */ __pyx_t_8 = 0; __pyx_t_7 = 1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mv_ptr, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_8)) ))) - (__pyx_v_mu / 2.0)), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_7)) ))) - (__pyx_v_mu / 2.0)));
+336: mse_m[0] = mv_ptr[0] / mv_ptr[1]
(__pyx_v_mse_m[0]) = ((__pyx_v_mv_ptr[0]) / (__pyx_v_mv_ptr[1])); /* … */ (__pyx_v_mse_m[0]) = ((__pyx_v_mv_ptr[0]) / (__pyx_v_mv_ptr[1]));
+337: mse_bi(mv_ptr, I, I0, di, dj, u[0] - mu / 2, u[1])
__pyx_t_7 = 0; __pyx_t_8 = 1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mv_ptr, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_7)) ))) - (__pyx_v_mu / 2.0)), (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_8)) )))); /* … */ __pyx_t_7 = 0; __pyx_t_8 = 1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mv_ptr, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_7)) ))) - (__pyx_v_mu / 2.0)), (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_8)) ))));
+338: mse_m[1] = mv_ptr[0] / mv_ptr[1]
(__pyx_v_mse_m[1]) = ((__pyx_v_mv_ptr[0]) / (__pyx_v_mv_ptr[1])); /* … */ (__pyx_v_mse_m[1]) = ((__pyx_v_mv_ptr[0]) / (__pyx_v_mv_ptr[1]));
+339: mse_bi(mv_ptr, I, I0, di, dj, u[0], u[1] - mu / 2)
__pyx_t_8 = 0; __pyx_t_7 = 1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mv_ptr, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_8)) ))), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_7)) ))) - (__pyx_v_mu / 2.0))); /* … */ __pyx_t_8 = 0; __pyx_t_7 = 1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mv_ptr, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_8)) ))), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_7)) ))) - (__pyx_v_mu / 2.0)));
+340: mse_m[2] = mv_ptr[0] / mv_ptr[1]
(__pyx_v_mse_m[2]) = ((__pyx_v_mv_ptr[0]) / (__pyx_v_mv_ptr[1])); /* … */ (__pyx_v_mse_m[2]) = ((__pyx_v_mv_ptr[0]) / (__pyx_v_mv_ptr[1]));
+341: mse_m[3] = mse_min
(__pyx_v_mse_m[3]) = __pyx_v_mse_min; /* … */ (__pyx_v_mse_m[3]) = __pyx_v_mse_min;
+342: mse_bi(mv_ptr, I, I0, di, dj, u[0], u[1] + mu / 2)
__pyx_t_7 = 0; __pyx_t_8 = 1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mv_ptr, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_7)) ))), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_8)) ))) + (__pyx_v_mu / 2.0))); /* … */ __pyx_t_7 = 0; __pyx_t_8 = 1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mv_ptr, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_7)) ))), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_8)) ))) + (__pyx_v_mu / 2.0)));
+343: mse_m[4] = mv_ptr[0] / mv_ptr[1]
(__pyx_v_mse_m[4]) = ((__pyx_v_mv_ptr[0]) / (__pyx_v_mv_ptr[1])); /* … */ (__pyx_v_mse_m[4]) = ((__pyx_v_mv_ptr[0]) / (__pyx_v_mv_ptr[1]));
+344: mse_bi(mv_ptr, I, I0, di, dj, u[0] + mu / 2, u[1])
__pyx_t_8 = 0; __pyx_t_7 = 1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mv_ptr, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_8)) ))) + (__pyx_v_mu / 2.0)), (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_7)) )))); /* … */ __pyx_t_8 = 0; __pyx_t_7 = 1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mv_ptr, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_8)) ))) + (__pyx_v_mu / 2.0)), (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_7)) ))));
+345: mse_m[5] = mv_ptr[0] / mv_ptr[1]
(__pyx_v_mse_m[5]) = ((__pyx_v_mv_ptr[0]) / (__pyx_v_mv_ptr[1])); /* … */ (__pyx_v_mse_m[5]) = ((__pyx_v_mv_ptr[0]) / (__pyx_v_mv_ptr[1]));
+346: mse_bi(mv_ptr, I, I0, di, dj, u[0] + mu / 2, u[1] + mu / 2)
__pyx_t_7 = 0; __pyx_t_8 = 1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mv_ptr, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_7)) ))) + (__pyx_v_mu / 2.0)), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_8)) ))) + (__pyx_v_mu / 2.0))); /* … */ __pyx_t_7 = 0; __pyx_t_8 = 1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mv_ptr, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_7)) ))) + (__pyx_v_mu / 2.0)), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_8)) ))) + (__pyx_v_mu / 2.0)));
+347: mse_m[6] = mv_ptr[0] / mv_ptr[1]
(__pyx_v_mse_m[6]) = ((__pyx_v_mv_ptr[0]) / (__pyx_v_mv_ptr[1])); /* … */ (__pyx_v_mse_m[6]) = ((__pyx_v_mv_ptr[0]) / (__pyx_v_mv_ptr[1]));
+348: subpixel_ref_2d(u, mse_m, mu)
__pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_subpixel_ref_2d(__pyx_v_u, __pyx_v_mse_m, __pyx_v_mu); /* … */ __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_subpixel_ref_2d(__pyx_v_u, __pyx_v_mse_m, __pyx_v_mu);
349: else:
+350: mse_bi(mv_ptr, I, I0, di, dj, u[0], u[1] - mu / 2)
/*else*/ { __pyx_t_8 = 0; __pyx_t_7 = 1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mv_ptr, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_8)) ))), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_7)) ))) - (__pyx_v_mu / 2.0))); /* … */ /*else*/ { __pyx_t_8 = 0; __pyx_t_7 = 1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mv_ptr, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_8)) ))), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_7)) ))) - (__pyx_v_mu / 2.0)));
+351: mse_m[0] = mv_ptr[0] / mv_ptr[1]
(__pyx_v_mse_m[0]) = ((__pyx_v_mv_ptr[0]) / (__pyx_v_mv_ptr[1])); /* … */ (__pyx_v_mse_m[0]) = ((__pyx_v_mv_ptr[0]) / (__pyx_v_mv_ptr[1]));
+352: mse_m[1] = mse_min
(__pyx_v_mse_m[1]) = __pyx_v_mse_min; /* … */ (__pyx_v_mse_m[1]) = __pyx_v_mse_min;
+353: mse_bi(mv_ptr, I, I0, di, dj, u[0], u[1] + mu / 2)
__pyx_t_7 = 0; __pyx_t_8 = 1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mv_ptr, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_7)) ))), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_8)) ))) + (__pyx_v_mu / 2.0))); /* … */ __pyx_t_7 = 0; __pyx_t_8 = 1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mv_ptr, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_7)) ))), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_8)) ))) + (__pyx_v_mu / 2.0)));
+354: mse_m[2] = mv_ptr[0] / mv_ptr[1]
(__pyx_v_mse_m[2]) = ((__pyx_v_mv_ptr[0]) / (__pyx_v_mv_ptr[1])); /* … */ (__pyx_v_mse_m[2]) = ((__pyx_v_mv_ptr[0]) / (__pyx_v_mv_ptr[1]));
+355: subpixel_ref_1d(u, mse_m, mu)
__pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_subpixel_ref_1d(__pyx_v_u, __pyx_v_mse_m, __pyx_v_mu); } __pyx_L9:; /* … */ __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_subpixel_ref_1d(__pyx_v_u, __pyx_v_mse_m, __pyx_v_mu); } __pyx_L9:;
356:
+357: def update_pixel_map_gs(float_t[:, :, ::1] I_n, float_t[:, ::1] W, float_t[:, ::1] I0,
/* Python wrapper */ static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_3update_pixel_map_gs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_6pyrost_3bin_6pyrost_2update_pixel_map_gs[] = "update_pixel_map_gs(signatures, args, kwargs, defaults)\nUpdate the pixel mapping by minimizing mean-squared-error\n (MSE). Perform a grid search within the search window of `sw_ss`,\n `sw_fs` size along the slow and fast axes accordingly in order to\n minimize the MSE.\n\n Parameters\n ----------\n I_n : numpy.ndarray\n Measured intensity frames.\n W : numpy.ndarray\n Measured frames' whitefield.\n I0 : numpy.ndarray\n Reference image of the sample.\n u0 : numpy.ndarray\n Initial pixel mapping.\n di : numpy.ndarray\n Sample's translations along the slow detector axis\n in pixels.\n dj : numpy.ndarray\n Sample's translations along the fast detector axis\n in pixels.\n sw_ss : int\n Search window size in pixels along the slow detector\n axis.\n sw_fs : int\n Search window size in pixels along the fast detector\n axis.\n ls : float\n Reference image length scale in pixels.\n num_threads : int, optional\n Number of threads.\n\n Returns\n -------\n u : numpy.ndarray\n Updated pixel mapping array.\n\n Notes\n -----\n The following error metric is being minimized:\n\n .. math::\n\n MSE[i, j] = \\frac{\\sum_n \\left( I_g[n]\n - I_{ref}[ii_n, jj_n] \\right)^2}{\\sum_n \\left(\n I_g[n] - 1 \\right)^2}\n \n Where :math:`I_g[n]` is a kriged intensity profile of the\n particular detector coordinate :math:`I_n[n, i, j]`. Intensity\n profile :math:`I_n[n, i, j]` is kriged with gaussian radial\n basis function :math:`\\phi`:\n\n .. math::\n I_g[n] = \\frac{\\sum_{\\Delta i, \\Delta j} I_n[n, i + \\Delta i,\n j + \\Delta j] W[i + \\Delta i, j + \\Delta j] \n \\phi[\\Delta u[0], \\Delta u[1]]}\n {\\sum_{\\Delta i, \\Delta j} W[i + \\Delta i, j + \\Delta j]^2\n \\phi[\\Delta u[0], \\Delta u[1]]}\n \n .. math::\n \\Delta u[0] = u[0"", i + \\Delta i, j + \\Delta j] - u[0, i, j]\n \n .. math::\n \\Delta u[1] = u[1, i + \\Delta i, j + \\Delta j] - u[1, i, j]\n\n .. math::\n \\phi [\\Delta ii_{ref}, \\Delta jj_{ref}] = \n \\exp\\left[{-\\frac{(\\Delta ii_{ref})^2 + \n (\\Delta jj_{ref})^2}{ls^2}}\\right]\n "; static PyMethodDef __pyx_mdef_6pyrost_3bin_6pyrost_3update_pixel_map_gs = {"update_pixel_map_gs", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pyrost_3bin_6pyrost_3update_pixel_map_gs, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_2update_pixel_map_gs}; static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_3update_pixel_map_gs(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, 357, __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, 357, __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, 357, __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, 357, __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, 357, __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_2update_pixel_map_gs(__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_2update_pixel_map_gs(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("update_pixel_map_gs", 0); __Pyx_INCREF(__pyx_v_kwargs); __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 357, __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, 357, __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, 357, __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, 357, __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, 357, __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, 357, __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, 357, __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, 357, __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, 357, __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, 357, __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, 357, __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, 357, __pyx_L1_error) __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 357, __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, 357, __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, 357, __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, 357, __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, 357, __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, 357, __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, 357, __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, 357, __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, 357, __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, 357, __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, 357, __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, 357, __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, 357, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 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, 357, __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, 357, __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, 357, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 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, 357, __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_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, 357, __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_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, 357, __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, 357, __pyx_L1_error) goto __pyx_L10_break; } __pyx_L10_break:; __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 357, __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, 357, __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, 357, __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, 357, __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, 357, __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_) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s_); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 357, __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, 357, __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__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 357, __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, 357, __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, 357, __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, 357, __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, 357, __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, 357, __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__3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 357, __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, 357, __pyx_L1_error) } __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 357, __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__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 357, __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, 357, __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, 357, __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, 357, __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_68__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_defaults6, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 357, __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, 357, __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__pyx_pw_6pyrost_3bin_6pyrost_21update_pixel_map_gs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_0__pyx_mdef_6pyrost_3bin_6pyrost_21update_pixel_map_gs = {"__pyx_fuse_0update_pixel_map_gs", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0__pyx_pw_6pyrost_3bin_6pyrost_21update_pixel_map_gs, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_2update_pixel_map_gs}; static PyObject *__pyx_fuse_0__pyx_pw_6pyrost_3bin_6pyrost_21update_pixel_map_gs(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 } }; int __pyx_v_sw_ss; int __pyx_v_sw_fs; __pyx_t_5numpy_float64_t __pyx_v_ls; unsigned int __pyx_v_num_threads; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("update_pixel_map_gs (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_ss,&__pyx_n_s_sw_fs,&__pyx_n_s_ls,&__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("update_pixel_map_gs", 0, 9, 10, 1); __PYX_ERR(0, 357, __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("update_pixel_map_gs", 0, 9, 10, 2); __PYX_ERR(0, 357, __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("update_pixel_map_gs", 0, 9, 10, 3); __PYX_ERR(0, 357, __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("update_pixel_map_gs", 0, 9, 10, 4); __PYX_ERR(0, 357, __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("update_pixel_map_gs", 0, 9, 10, 5); __PYX_ERR(0, 357, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_ss)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("update_pixel_map_gs", 0, 9, 10, 6); __PYX_ERR(0, 357, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 7: if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_fs)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("update_pixel_map_gs", 0, 9, 10, 7); __PYX_ERR(0, 357, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 8: if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ls)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("update_pixel_map_gs", 0, 9, 10, 8); __PYX_ERR(0, 357, __pyx_L3_error) } 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, "update_pixel_map_gs") < 0)) __PYX_ERR(0, 357, __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); 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_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 357, __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, 357, __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, 357, __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, 358, __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, 358, __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, 358, __pyx_L3_error) __pyx_v_sw_ss = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_sw_ss == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 359, __pyx_L3_error) __pyx_v_sw_fs = __Pyx_PyInt_As_int(values[7]); if (unlikely((__pyx_v_sw_fs == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 359, __pyx_L3_error) __pyx_v_ls = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_ls == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 359, __pyx_L3_error) 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, 359, __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("update_pixel_map_gs", 0, 9, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 357, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyrost.bin.pyrost.update_pixel_map_gs", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_20update_pixel_map_gs(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u0, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_ss, __pyx_v_sw_fs, __pyx_v_ls, __pyx_v_num_threads); 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_20update_pixel_map_gs(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, int __pyx_v_sw_ss, int __pyx_v_sw_fs, __pyx_t_5numpy_float64_t __pyx_v_ls, unsigned int __pyx_v_num_threads) { PyObject *__pyx_v_dtype = 0; int __pyx_v_a; int __pyx_v_b; int __pyx_v_c; int __pyx_v_j; int __pyx_v_k; int __pyx_v_t; __Pyx_memviewslice __pyx_v_u_buf = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_I = { 0, 0, { 0 }, { 0 }, { 0 } }; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_0update_pixel_map_gs", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __PYX_XDEC_MEMVIEW(&__pyx_t_5, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_13, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_19, 1); __Pyx_AddTraceback("pyrost.bin.pyrost.update_pixel_map_gs", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_dtype); __PYX_XDEC_MEMVIEW(&__pyx_v_u_buf, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_u, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_I, 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_70__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_defaults7, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 357, __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, 357, __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__pyx_pw_6pyrost_3bin_6pyrost_23update_pixel_map_gs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_1__pyx_mdef_6pyrost_3bin_6pyrost_23update_pixel_map_gs = {"__pyx_fuse_1update_pixel_map_gs", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1__pyx_pw_6pyrost_3bin_6pyrost_23update_pixel_map_gs, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_2update_pixel_map_gs}; static PyObject *__pyx_fuse_1__pyx_pw_6pyrost_3bin_6pyrost_23update_pixel_map_gs(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 } }; int __pyx_v_sw_ss; int __pyx_v_sw_fs; __pyx_t_5numpy_float32_t __pyx_v_ls; unsigned int __pyx_v_num_threads; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("update_pixel_map_gs (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_ss,&__pyx_n_s_sw_fs,&__pyx_n_s_ls,&__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("update_pixel_map_gs", 0, 9, 10, 1); __PYX_ERR(0, 357, __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("update_pixel_map_gs", 0, 9, 10, 2); __PYX_ERR(0, 357, __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("update_pixel_map_gs", 0, 9, 10, 3); __PYX_ERR(0, 357, __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("update_pixel_map_gs", 0, 9, 10, 4); __PYX_ERR(0, 357, __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("update_pixel_map_gs", 0, 9, 10, 5); __PYX_ERR(0, 357, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_ss)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("update_pixel_map_gs", 0, 9, 10, 6); __PYX_ERR(0, 357, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 7: if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_fs)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("update_pixel_map_gs", 0, 9, 10, 7); __PYX_ERR(0, 357, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 8: if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ls)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("update_pixel_map_gs", 0, 9, 10, 8); __PYX_ERR(0, 357, __pyx_L3_error) } 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, "update_pixel_map_gs") < 0)) __PYX_ERR(0, 357, __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); 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_float32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 357, __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, 357, __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, 357, __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, 358, __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, 358, __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, 358, __pyx_L3_error) __pyx_v_sw_ss = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_sw_ss == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 359, __pyx_L3_error) __pyx_v_sw_fs = __Pyx_PyInt_As_int(values[7]); if (unlikely((__pyx_v_sw_fs == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 359, __pyx_L3_error) __pyx_v_ls = __pyx_PyFloat_AsFloat(values[8]); if (unlikely((__pyx_v_ls == ((npy_float32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 359, __pyx_L3_error) 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, 359, __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("update_pixel_map_gs", 0, 9, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 357, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyrost.bin.pyrost.update_pixel_map_gs", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_22update_pixel_map_gs(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u0, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_ss, __pyx_v_sw_fs, __pyx_v_ls, __pyx_v_num_threads); 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_22update_pixel_map_gs(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, int __pyx_v_sw_ss, int __pyx_v_sw_fs, __pyx_t_5numpy_float32_t __pyx_v_ls, unsigned int __pyx_v_num_threads) { PyObject *__pyx_v_dtype = 0; int __pyx_v_a; int __pyx_v_b; int __pyx_v_c; int __pyx_v_j; int __pyx_v_k; int __pyx_v_t; __Pyx_memviewslice __pyx_v_u_buf = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_I = { 0, 0, { 0 }, { 0 }, { 0 } }; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_1update_pixel_map_gs", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __PYX_XDEC_MEMVIEW(&__pyx_t_5, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_13, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_19, 1); __Pyx_AddTraceback("pyrost.bin.pyrost.update_pixel_map_gs", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_dtype); __PYX_XDEC_MEMVIEW(&__pyx_v_u_buf, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_u, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_I, 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_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __pyx_t_3 = 0; /* … */ __pyx_tuple__27 = PyTuple_Pack(20, __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_ss, __pyx_n_s_sw_fs, __pyx_n_s_ls, __pyx_n_s_num_threads, __pyx_n_s_dtype, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_c, __pyx_n_s_j, __pyx_n_s_k, __pyx_n_s_t, __pyx_n_s_u_buf, __pyx_n_s_u, __pyx_n_s_I); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__27); __Pyx_GIVEREF(__pyx_tuple__27); __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_6pyrost_3bin_6pyrost_21update_pixel_map_gs, 0, __pyx_n_s_update_pixel_map_gs, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__28)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (!__Pyx_CyFunction_InitDefaults(__pyx_t_2, sizeof(__pyx_defaults6), 0)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_CyFunction_Defaults(__pyx_defaults6, __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_68__defaults__); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_float64_t, __pyx_t_2) < 0) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_6pyrost_3bin_6pyrost_23update_pixel_map_gs, 0, __pyx_n_s_update_pixel_map_gs, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__28)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (!__Pyx_CyFunction_InitDefaults(__pyx_t_2, sizeof(__pyx_defaults7), 0)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_CyFunction_Defaults(__pyx_defaults7, __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_70__defaults__); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_float32_t, __pyx_t_2) < 0) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_FusedFunction_New(&__pyx_mdef_6pyrost_3bin_6pyrost_3update_pixel_map_gs, 0, __pyx_n_s_update_pixel_map_gs, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__28)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_1); ((__pyx_FusedFunctionObject *) __pyx_t_2)->__signatures__ = __pyx_t_3; __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_update_pixel_map_gs, __pyx_t_2) < 0) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(10, 0, 20, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__27, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pyrost_bin_pyrost_pyx, __pyx_n_s_update_pixel_map_gs, 357, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(0, 357, __pyx_L1_error)
358: float_t[:, :, ::1] u0, float_t[::1] di, float_t[::1] dj,
+359: int sw_ss, int sw_fs, float_t ls, unsigned num_threads=1):
__pyx_t_3 = __Pyx_PyInt_From_long(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 359, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
360: r"""Update the pixel mapping by minimizing mean-squared-error
361: (MSE). Perform a grid search within the search window of `sw_ss`,
362: `sw_fs` size along the slow and fast axes accordingly in order to
363: minimize the MSE.
364:
365: Parameters
366: ----------
367: I_n : numpy.ndarray
368: Measured intensity frames.
369: W : numpy.ndarray
370: Measured frames' whitefield.
371: I0 : numpy.ndarray
372: Reference image of the sample.
373: u0 : numpy.ndarray
374: Initial pixel mapping.
375: di : numpy.ndarray
376: Sample's translations along the slow detector axis
377: in pixels.
378: dj : numpy.ndarray
379: Sample's translations along the fast detector axis
380: in pixels.
381: sw_ss : int
382: Search window size in pixels along the slow detector
383: axis.
384: sw_fs : int
385: Search window size in pixels along the fast detector
386: axis.
387: ls : float
388: Reference image length scale in pixels.
389: num_threads : int, optional
390: Number of threads.
391:
392: Returns
393: -------
394: u : numpy.ndarray
395: Updated pixel mapping array.
396:
397: Notes
398: -----
399: The following error metric is being minimized:
400:
401: .. math::
402:
403: MSE[i, j] = \frac{\sum_n \left( I_g[n]
404: - I_{ref}[ii_n, jj_n] \right)^2}{\sum_n \left(
405: I_g[n] - 1 \right)^2}
406:
407: Where :math:`I_g[n]` is a kriged intensity profile of the
408: particular detector coordinate :math:`I_n[n, i, j]`. Intensity
409: profile :math:`I_n[n, i, j]` is kriged with gaussian radial
410: basis function :math:`\phi`:
411:
412: .. math::
413: I_g[n] = \frac{\sum_{\Delta i, \Delta j} I_n[n, i + \Delta i,
414: j + \Delta j] W[i + \Delta i, j + \Delta j]
415: \phi[\Delta u[0], \Delta u[1]]}
416: {\sum_{\Delta i, \Delta j} W[i + \Delta i, j + \Delta j]^2
417: \phi[\Delta u[0], \Delta u[1]]}
418:
419: .. math::
420: \Delta u[0] = u[0, i + \Delta i, j + \Delta j] - u[0, i, j]
421:
422: .. math::
423: \Delta u[1] = u[1, i + \Delta i, j + \Delta j] - u[1, i, j]
424:
425: .. math::
426: \phi [\Delta ii_{ref}, \Delta jj_{ref}] =
427: \exp\left[{-\frac{(\Delta ii_{ref})^2 +
428: (\Delta jj_{ref})^2}{ls^2}}\right]
429: """
430: cdef:
+431: str dtype = 'float64' if float_t is np.float64_t else 'float32'
if ((1 != 0)) { __Pyx_INCREF(__pyx_n_u_float64); __pyx_t_1 = __pyx_n_u_float64; } else { __Pyx_INCREF(__pyx_n_u_float32); __pyx_t_1 = __pyx_n_u_float32; } __pyx_v_dtype = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* … */ if ((0 != 0)) { __Pyx_INCREF(__pyx_n_u_float64); __pyx_t_1 = __pyx_n_u_float64; } else { __Pyx_INCREF(__pyx_n_u_float32); __pyx_t_1 = __pyx_n_u_float32; } __pyx_v_dtype = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+432: int a = I_n.shape[0], b = I_n.shape[1], c = I_n.shape[2]
__pyx_v_a = (__pyx_v_I_n.shape[0]); __pyx_v_b = (__pyx_v_I_n.shape[1]); __pyx_v_c = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_a = (__pyx_v_I_n.shape[0]); __pyx_v_b = (__pyx_v_I_n.shape[1]); __pyx_v_c = (__pyx_v_I_n.shape[2]);
433: int j, k, t
+434: float_t[:, ::1] u_buf = np.empty((num_threads, 2), dtype=dtype)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_2); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 434, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_u_buf = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL; /* … */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_2); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 434, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_u_buf = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL;
+435: float_t[:, :, ::1] u = np.empty((2, b, c), dtype=dtype)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_b); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_c); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1); __pyx_t_4 = 0; __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 435, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __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, 435, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_u = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_b); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_c); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1); __pyx_t_4 = 0; __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 435, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __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, 435, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_u = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL;
+436: float_t[:, ::1] I = np.empty((num_threads, a + 1), dtype=dtype)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_unsigned_int(__pyx_v_num_threads); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyInt_From_long((__pyx_v_a + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); __pyx_t_4 = 0; __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 436, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_I = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL; /* … */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_unsigned_int(__pyx_v_num_threads); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyInt_From_long((__pyx_v_a + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); __pyx_t_4 = 0; __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 436, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_I = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL;
+437: for k in prange(c, 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_c; 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 lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_7 = __pyx_v_c; 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 lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) 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_k = (int)(0 + 1 * __pyx_t_8); /* Initialize private variables to invalid values */ __pyx_v_j = ((int)0xbad0bad0); __pyx_v_t = ((int)0xbad0bad0); /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } } /* … */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { __pyx_t_7 = __pyx_v_c; 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 lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_7 = __pyx_v_c; 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 lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) 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_k = (int)(0 + 1 * __pyx_t_8); /* Initialize private variables to invalid values */ __pyx_v_j = ((int)0xbad0bad0); __pyx_v_t = ((int)0xbad0bad0); /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+438: t = openmp.omp_get_thread_num()
__pyx_v_t = omp_get_thread_num(); /* … */ __pyx_v_t = omp_get_thread_num();
+439: for j in range(b):
__pyx_t_10 = __pyx_v_b; __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_j = __pyx_t_12; /* … */ __pyx_t_10 = __pyx_v_b; __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_j = __pyx_t_12;
+440: krig_data_c(I[t], I_n, W, u0, j, k, ls)
__pyx_t_13.data = __pyx_v_I.data; __pyx_t_13.memview = __pyx_v_I.memview; __PYX_INC_MEMVIEW(&__pyx_t_13, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_t; Py_ssize_t __pyx_tmp_stride = __pyx_v_I.strides[0]; __pyx_t_13.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_13.shape[0] = __pyx_v_I.shape[1]; __pyx_t_13.strides[0] = __pyx_v_I.strides[1]; __pyx_t_13.suboffsets[0] = -1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_krig_data_c(__pyx_t_13, __pyx_v_I_n, __pyx_v_W, __pyx_v_u0, __pyx_v_j, __pyx_v_k, __pyx_v_ls); __PYX_XDEC_MEMVIEW(&__pyx_t_13, 0); __pyx_t_13.memview = NULL; __pyx_t_13.data = NULL; /* … */ __pyx_t_13.data = __pyx_v_I.data; __pyx_t_13.memview = __pyx_v_I.memview; __PYX_INC_MEMVIEW(&__pyx_t_13, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_t; Py_ssize_t __pyx_tmp_stride = __pyx_v_I.strides[0]; __pyx_t_13.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_13.shape[0] = __pyx_v_I.shape[1]; __pyx_t_13.strides[0] = __pyx_v_I.strides[1]; __pyx_t_13.suboffsets[0] = -1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_krig_data_c(__pyx_t_13, __pyx_v_I_n, __pyx_v_W, __pyx_v_u0, __pyx_v_j, __pyx_v_k, __pyx_v_ls); __PYX_XDEC_MEMVIEW(&__pyx_t_13, 0); __pyx_t_13.memview = NULL; __pyx_t_13.data = NULL;
+441: u_buf[t, 0] = u0[0, j, k]; u_buf[t, 1] = u0[1, j, k]
__pyx_t_14 = 0; __pyx_t_15 = __pyx_v_j; __pyx_t_16 = __pyx_v_k; __pyx_t_17 = __pyx_v_t; __pyx_t_18 = 0; *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_u_buf.data + __pyx_t_17 * __pyx_v_u_buf.strides[0]) )) + __pyx_t_18)) )) = (*((__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_18 = __pyx_v_t; __pyx_t_17 = 1; *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_u_buf.data + __pyx_t_18 * __pyx_v_u_buf.strides[0]) )) + __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 = __pyx_v_t; __pyx_t_18 = 0; *((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_u_buf.data + __pyx_t_17 * __pyx_v_u_buf.strides[0]) )) + __pyx_t_18)) )) = (*((__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_18 = __pyx_v_t; __pyx_t_17 = 1; *((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_u_buf.data + __pyx_t_18 * __pyx_v_u_buf.strides[0]) )) + __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)) )));
+442: update_pm_c(I[t], I0, u_buf[t], di, dj, sw_ss, sw_fs)
__pyx_t_13.data = __pyx_v_I.data; __pyx_t_13.memview = __pyx_v_I.memview; __PYX_INC_MEMVIEW(&__pyx_t_13, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_t; Py_ssize_t __pyx_tmp_stride = __pyx_v_I.strides[0]; __pyx_t_13.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_13.shape[0] = __pyx_v_I.shape[1]; __pyx_t_13.strides[0] = __pyx_v_I.strides[1]; __pyx_t_13.suboffsets[0] = -1; __pyx_t_19.data = __pyx_v_u_buf.data; __pyx_t_19.memview = __pyx_v_u_buf.memview; __PYX_INC_MEMVIEW(&__pyx_t_19, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_t; Py_ssize_t __pyx_tmp_stride = __pyx_v_u_buf.strides[0]; __pyx_t_19.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_19.shape[0] = __pyx_v_u_buf.shape[1]; __pyx_t_19.strides[0] = __pyx_v_u_buf.strides[1]; __pyx_t_19.suboffsets[0] = -1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_update_pm_c(__pyx_t_13, __pyx_v_I0, __pyx_t_19, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_ss, __pyx_v_sw_fs); __PYX_XDEC_MEMVIEW(&__pyx_t_13, 0); __pyx_t_13.memview = NULL; __pyx_t_13.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_19, 0); __pyx_t_19.memview = NULL; __pyx_t_19.data = NULL; /* … */ __pyx_t_13.data = __pyx_v_I.data; __pyx_t_13.memview = __pyx_v_I.memview; __PYX_INC_MEMVIEW(&__pyx_t_13, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_t; Py_ssize_t __pyx_tmp_stride = __pyx_v_I.strides[0]; __pyx_t_13.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_13.shape[0] = __pyx_v_I.shape[1]; __pyx_t_13.strides[0] = __pyx_v_I.strides[1]; __pyx_t_13.suboffsets[0] = -1; __pyx_t_19.data = __pyx_v_u_buf.data; __pyx_t_19.memview = __pyx_v_u_buf.memview; __PYX_INC_MEMVIEW(&__pyx_t_19, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_t; Py_ssize_t __pyx_tmp_stride = __pyx_v_u_buf.strides[0]; __pyx_t_19.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_19.shape[0] = __pyx_v_u_buf.shape[1]; __pyx_t_19.strides[0] = __pyx_v_u_buf.strides[1]; __pyx_t_19.suboffsets[0] = -1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_update_pm_c(__pyx_t_13, __pyx_v_I0, __pyx_t_19, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_ss, __pyx_v_sw_fs); __PYX_XDEC_MEMVIEW(&__pyx_t_13, 0); __pyx_t_13.memview = NULL; __pyx_t_13.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_19, 0); __pyx_t_19.memview = NULL; __pyx_t_19.data = NULL;
+443: u[0, j, k] = u_buf[t, 0]; u[1, j, k] = u_buf[t, 1]
__pyx_t_14 = __pyx_v_t; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = __pyx_v_j; __pyx_t_18 = __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=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_u_buf.data + __pyx_t_14 * __pyx_v_u_buf.strides[0]) )) + __pyx_t_15)) ))); __pyx_t_15 = __pyx_v_t; __pyx_t_14 = 1; __pyx_t_18 = 1; __pyx_t_17 = __pyx_v_j; __pyx_t_16 = __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_18 * __pyx_v_u.strides[0]) ) + __pyx_t_17 * __pyx_v_u.strides[1]) )) + __pyx_t_16)) )) = (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_u_buf.data + __pyx_t_15 * __pyx_v_u_buf.strides[0]) )) + __pyx_t_14)) ))); } } } } } } #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_t; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = __pyx_v_j; __pyx_t_18 = __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=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_u_buf.data + __pyx_t_14 * __pyx_v_u_buf.strides[0]) )) + __pyx_t_15)) ))); __pyx_t_15 = __pyx_v_t; __pyx_t_14 = 1; __pyx_t_18 = 1; __pyx_t_17 = __pyx_v_j; __pyx_t_16 = __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_18 * __pyx_v_u.strides[0]) ) + __pyx_t_17 * __pyx_v_u.strides[1]) )) + __pyx_t_16)) )) = (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_u_buf.data + __pyx_t_15 * __pyx_v_u_buf.strides[0]) )) + __pyx_t_14)) ))); } } } } } } #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 }
+444: return np.asarray(u)
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_asarray); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_u, 3, (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, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_4 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_asarray); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_u, 3, (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, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_4 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
445:
+446: cdef void init_newton_c(float_t[::1] sptr, float_t[::1] I, float_t[:, ::1] I0,
static void __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_init_newton_c(__Pyx_memviewslice __pyx_v_sptr, __Pyx_memviewslice __pyx_v_I, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, int __pyx_v_sw_fs) { int __pyx_v_fs; int __pyx_v_fs_max; __pyx_t_5numpy_float64_t __pyx_v_mse_min; __pyx_t_5numpy_float64_t __pyx_v_mse_max; __pyx_t_5numpy_float64_t __pyx_v_mse; __pyx_t_5numpy_float64_t __pyx_v_l1; __pyx_t_5numpy_float64_t __pyx_v_d0; __pyx_t_5numpy_float64_t __pyx_v_l; __pyx_t_5numpy_float64_t __pyx_v_dist; __pyx_t_5numpy_float64_t __pyx_v_mptr[3]; /* … */ /* function exit code */ } static void __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_init_newton_c(__Pyx_memviewslice __pyx_v_sptr, __Pyx_memviewslice __pyx_v_I, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, int __pyx_v_sw_fs) { int __pyx_v_fs; int __pyx_v_fs_max; __pyx_t_5numpy_float32_t __pyx_v_mse_min; __pyx_t_5numpy_float32_t __pyx_v_mse_max; __pyx_t_5numpy_float32_t __pyx_v_mse; __pyx_t_5numpy_float32_t __pyx_v_l1; __pyx_t_5numpy_float32_t __pyx_v_d0; __pyx_t_5numpy_float32_t __pyx_v_l; __pyx_t_5numpy_float32_t __pyx_v_dist; __pyx_t_5numpy_float32_t __pyx_v_mptr[3]; /* … */ /* function exit code */ }
447: float_t[::1] u, float_t[::1] di, float_t[::1] dj, int sw_fs) nogil:
448: cdef:
+449: int fs, fs_max = -sw_fs
__pyx_v_fs_max = (-__pyx_v_sw_fs); /* … */ __pyx_v_fs_max = (-__pyx_v_sw_fs);
+450: float_t mse_min = FLOAT_MAX, mse_max = -FLOAT_MAX, mse, l1, d0, l, dist
__pyx_v_mse_min = 1.7976931348623157e+308; __pyx_v_mse_max = -1.7976931348623157e+308; /* … */ __pyx_v_mse_min = 1.7976931348623157e+308; __pyx_v_mse_max = -1.7976931348623157e+308;
451: float_t mptr[3]
+452: mptr[1] = NO_VAR; sptr[0] = 0; sptr[2] = 0
(__pyx_v_mptr[1]) = -1.0; __pyx_t_1 = 0; *((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_sptr.data) + __pyx_t_1)) )) = 0.0; __pyx_t_1 = 2; *((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_sptr.data) + __pyx_t_1)) )) = 0.0; /* … */ (__pyx_v_mptr[1]) = -1.0; __pyx_t_1 = 0; *((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_sptr.data) + __pyx_t_1)) )) = 0.0; __pyx_t_1 = 2; *((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_sptr.data) + __pyx_t_1)) )) = 0.0;
+453: for fs in range(-sw_fs, sw_fs + 1):
__pyx_t_2 = (__pyx_v_sw_fs + 1); __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = (-__pyx_v_sw_fs); __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_fs = __pyx_t_4; /* … */ __pyx_t_2 = (__pyx_v_sw_fs + 1); __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = (-__pyx_v_sw_fs); __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_fs = __pyx_t_4;
+454: mse_bi(mptr, I, I0, di, dj, u[0], u[1] + fs)
__pyx_t_1 = 0; __pyx_t_5 = 1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mptr, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_1)) ))), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_5)) ))) + __pyx_v_fs)); /* … */ __pyx_t_1 = 0; __pyx_t_5 = 1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mptr, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_1)) ))), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_5)) ))) + __pyx_v_fs));
+455: mse = mptr[0] / mptr[1]
__pyx_v_mse = ((__pyx_v_mptr[0]) / (__pyx_v_mptr[1])); /* … */ __pyx_v_mse = ((__pyx_v_mptr[0]) / (__pyx_v_mptr[1]));
+456: if mse < mse_min:
__pyx_t_6 = ((__pyx_v_mse < __pyx_v_mse_min) != 0); if (__pyx_t_6) { /* … */ } /* … */ __pyx_t_6 = ((__pyx_v_mse < __pyx_v_mse_min) != 0); if (__pyx_t_6) { /* … */ }
+457: mse_min = mse; sptr[1] = fs
__pyx_v_mse_min = __pyx_v_mse; __pyx_t_5 = 1; *((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_sptr.data) + __pyx_t_5)) )) = __pyx_v_fs; /* … */ __pyx_v_mse_min = __pyx_v_mse; __pyx_t_5 = 1; *((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_sptr.data) + __pyx_t_5)) )) = __pyx_v_fs;
+458: if mse > mse_max:
__pyx_t_6 = ((__pyx_v_mse > __pyx_v_mse_max) != 0); if (__pyx_t_6) { /* … */ } } /* … */ __pyx_t_6 = ((__pyx_v_mse > __pyx_v_mse_max) != 0); if (__pyx_t_6) { /* … */ } }
+459: mse_max = mse; fs_max = fs
__pyx_v_mse_max = __pyx_v_mse; __pyx_v_fs_max = __pyx_v_fs; /* … */ __pyx_v_mse_max = __pyx_v_mse; __pyx_v_fs_max = __pyx_v_fs;
+460: d0 = (fs_max - sptr[1])**2
__pyx_t_5 = 1; __pyx_v_d0 = pow((__pyx_v_fs_max - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_sptr.data) + __pyx_t_5)) )))), 2.0); /* … */ __pyx_t_5 = 1; __pyx_v_d0 = powf((__pyx_v_fs_max - (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_sptr.data) + __pyx_t_5)) )))), 2.0);
+461: l1 = 2 * (mse_max - mse_min) / d0
__pyx_v_l1 = ((2.0 * (__pyx_v_mse_max - __pyx_v_mse_min)) / __pyx_v_d0); /* … */ __pyx_v_l1 = ((2.0 * (__pyx_v_mse_max - __pyx_v_mse_min)) / __pyx_v_d0);
+462: for fs in range(-sw_fs, sw_fs + 1):
__pyx_t_2 = (__pyx_v_sw_fs + 1); __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = (-__pyx_v_sw_fs); __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_fs = __pyx_t_4; /* … */ __pyx_t_2 = (__pyx_v_sw_fs + 1); __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = (-__pyx_v_sw_fs); __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_fs = __pyx_t_4;
+463: dist = (fs - sptr[1])**2
__pyx_t_5 = 1; __pyx_v_dist = pow((__pyx_v_fs - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_sptr.data) + __pyx_t_5)) )))), 2.0); /* … */ __pyx_t_5 = 1; __pyx_v_dist = powf((__pyx_v_fs - (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_sptr.data) + __pyx_t_5)) )))), 2.0);
+464: if dist > d0 / 4 and dist < d0:
__pyx_t_7 = ((__pyx_v_dist > (__pyx_v_d0 / 4.0)) != 0); if (__pyx_t_7) { } else { __pyx_t_6 = __pyx_t_7; goto __pyx_L10_bool_binop_done; } __pyx_t_7 = ((__pyx_v_dist < __pyx_v_d0) != 0); __pyx_t_6 = __pyx_t_7; __pyx_L10_bool_binop_done:; if (__pyx_t_6) { /* … */ } } /* … */ __pyx_t_7 = ((__pyx_v_dist > (__pyx_v_d0 / 4.0)) != 0); if (__pyx_t_7) { } else { __pyx_t_6 = __pyx_t_7; goto __pyx_L10_bool_binop_done; } __pyx_t_7 = ((__pyx_v_dist < __pyx_v_d0) != 0); __pyx_t_6 = __pyx_t_7; __pyx_L10_bool_binop_done:; if (__pyx_t_6) { /* … */ } }
+465: mse_bi(mptr, I, I0, di, dj, u[0], u[1] + fs)
__pyx_t_5 = 0; __pyx_t_1 = 1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mptr, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_5)) ))), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_1)) ))) + __pyx_v_fs)); /* … */ __pyx_t_5 = 0; __pyx_t_1 = 1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mptr, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_5)) ))), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_1)) ))) + __pyx_v_fs));
+466: l = 2 * (mptr[0] / mptr[1] - mse_min) / dist
__pyx_v_l = ((2.0 * (((__pyx_v_mptr[0]) / (__pyx_v_mptr[1])) - __pyx_v_mse_min)) / __pyx_v_dist); /* … */ __pyx_v_l = ((2.0 * (((__pyx_v_mptr[0]) / (__pyx_v_mptr[1])) - __pyx_v_mse_min)) / __pyx_v_dist);
+467: if l > l1:
__pyx_t_6 = ((__pyx_v_l > __pyx_v_l1) != 0); if (__pyx_t_6) { /* … */ } /* … */ __pyx_t_6 = ((__pyx_v_l > __pyx_v_l1) != 0); if (__pyx_t_6) { /* … */ }
+468: l1 = l
__pyx_v_l1 = __pyx_v_l; /* … */ __pyx_v_l1 = __pyx_v_l;
+469: sptr[2] = l1
__pyx_t_1 = 2; *((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_sptr.data) + __pyx_t_1)) )) = __pyx_v_l1; /* … */ __pyx_t_1 = 2; *((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_sptr.data) + __pyx_t_1)) )) = __pyx_v_l1;
470:
+471: cdef void newton_1d_c(float_t[::1] sptr, float_t[::1] I, float_t[:, ::1] I0, float_t[::1] u,
static void __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_newton_1d_c(__Pyx_memviewslice __pyx_v_sptr, __Pyx_memviewslice __pyx_v_I, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, int __pyx_v_max_iter, __pyx_t_5numpy_float64_t __pyx_v_x_tol, int __pyx_v_sw_fs) { __pyx_t_5numpy_float64_t __pyx_v_fs; __pyx_t_5numpy_float64_t __pyx_v_mu; __pyx_t_5numpy_float64_t __pyx_v_dfs; __pyx_t_5numpy_float64_t __pyx_v_mptr0[3]; __pyx_t_5numpy_float64_t __pyx_v_mptr1[3]; __pyx_t_5numpy_float64_t __pyx_v_mptr2[3]; CYTHON_UNUSED int __pyx_v_k; /* … */ /* function exit code */ } static void __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_newton_1d_c(__Pyx_memviewslice __pyx_v_sptr, __Pyx_memviewslice __pyx_v_I, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_di, __Pyx_memviewslice __pyx_v_dj, int __pyx_v_max_iter, __pyx_t_5numpy_float32_t __pyx_v_x_tol, int __pyx_v_sw_fs) { __pyx_t_5numpy_float32_t __pyx_v_fs; __pyx_t_5numpy_float32_t __pyx_v_mu; __pyx_t_5numpy_float32_t __pyx_v_dfs; __pyx_t_5numpy_float32_t __pyx_v_mptr0[3]; __pyx_t_5numpy_float32_t __pyx_v_mptr1[3]; __pyx_t_5numpy_float32_t __pyx_v_mptr2[3]; CYTHON_UNUSED int __pyx_v_k; /* … */ /* function exit code */ }
472: float_t[::1] di, float_t[::1] dj, int max_iter, float_t x_tol, int sw_fs) nogil:
473: cdef:
474: float_t fs, mu, dfs
475: float_t mptr0[3]
476: float_t mptr1[3]
477: float_t mptr2[3]
+478: if sptr[2] == 0:
__pyx_t_1 = 2; __pyx_t_2 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_sptr.data) + __pyx_t_1)) ))) == 0.0) != 0); if (__pyx_t_2) { /* … */ } /* … */ __pyx_t_1 = 2; __pyx_t_2 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_sptr.data) + __pyx_t_1)) ))) == 0.0) != 0); if (__pyx_t_2) { /* … */ }
+479: init_newton_c(sptr, I, I0, u, di, dj, sw_fs)
__pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_init_newton_c(__pyx_v_sptr, __pyx_v_I, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_fs); /* … */ __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_init_newton_c(__pyx_v_sptr, __pyx_v_I, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_fs);
+480: fs = sptr[1]; mptr1[1] = NO_VAR; mptr2[1] = NO_VAR
__pyx_t_1 = 1; __pyx_v_fs = (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_sptr.data) + __pyx_t_1)) ))); (__pyx_v_mptr1[1]) = -1.0; (__pyx_v_mptr2[1]) = -1.0; /* … */ __pyx_t_1 = 1; __pyx_v_fs = (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_sptr.data) + __pyx_t_1)) ))); (__pyx_v_mptr1[1]) = -1.0; (__pyx_v_mptr2[1]) = -1.0;
+481: for k in range(max_iter):
__pyx_t_3 = __pyx_v_max_iter; __pyx_t_4 = __pyx_t_3; for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_k = __pyx_t_5; /* … */ __pyx_t_3 = __pyx_v_max_iter; __pyx_t_4 = __pyx_t_3; for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_k = __pyx_t_5;
+482: mse_bi(mptr0, I, I0, di, dj, u[0], u[1] + fs)
__pyx_t_1 = 0; __pyx_t_6 = 1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mptr0, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_1)) ))), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_6)) ))) + __pyx_v_fs)); /* … */ __pyx_t_1 = 0; __pyx_t_6 = 1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mptr0, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_1)) ))), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_6)) ))) + __pyx_v_fs));
+483: mu = (3 * mptr0[2]**0.5 / sptr[2])**0.33
__pyx_t_6 = 2; __pyx_v_mu = pow(((3.0 * pow((__pyx_v_mptr0[2]), ((__pyx_t_5numpy_float64_t)0.5))) / (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_sptr.data) + __pyx_t_6)) )))), ((__pyx_t_5numpy_float64_t)0.33)); /* … */ __pyx_t_6 = 2; __pyx_v_mu = pow(((3.0 * pow(((double)(__pyx_v_mptr0[2])), 0.5)) / ((double)(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_sptr.data) + __pyx_t_6)) ))))), 0.33);
+484: mse_bi(mptr1, I, I0, di, dj, u[0], u[1] + fs - mu / 2)
__pyx_t_6 = 0; __pyx_t_1 = 1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mptr1, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_6)) ))), (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_1)) ))) + __pyx_v_fs) - (__pyx_v_mu / 2.0))); /* … */ __pyx_t_6 = 0; __pyx_t_1 = 1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mptr1, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_6)) ))), (((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_1)) ))) + __pyx_v_fs) - (__pyx_v_mu / 2.0)));
+485: mse_bi(mptr2, I, I0, di, dj, u[0], u[1] + fs + mu / 2)
__pyx_t_1 = 0; __pyx_t_6 = 1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mptr2, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_1)) ))), (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_6)) ))) + __pyx_v_fs) + (__pyx_v_mu / 2.0))); /* … */ __pyx_t_1 = 0; __pyx_t_6 = 1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mptr2, __pyx_v_I, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_1)) ))), (((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_6)) ))) + __pyx_v_fs) + (__pyx_v_mu / 2.0)));
+486: dfs = -(mptr2[0] / mptr2[1] - mptr1[0] / mptr1[1]) / mu / sptr[2]
__pyx_t_6 = 2; __pyx_v_dfs = (((-(((__pyx_v_mptr2[0]) / (__pyx_v_mptr2[1])) - ((__pyx_v_mptr1[0]) / (__pyx_v_mptr1[1])))) / __pyx_v_mu) / (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_sptr.data) + __pyx_t_6)) )))); /* … */ __pyx_t_6 = 2; __pyx_v_dfs = (((-(((__pyx_v_mptr2[0]) / (__pyx_v_mptr2[1])) - ((__pyx_v_mptr1[0]) / (__pyx_v_mptr1[1])))) / __pyx_v_mu) / (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_sptr.data) + __pyx_t_6)) ))));
+487: fs += dfs
__pyx_v_fs = (__pyx_v_fs + __pyx_v_dfs); /* … */ __pyx_v_fs = (__pyx_v_fs + __pyx_v_dfs);
+488: if dfs < x_tol and dfs > -x_tol:
__pyx_t_7 = ((__pyx_v_dfs < __pyx_v_x_tol) != 0); if (__pyx_t_7) { } else { __pyx_t_2 = __pyx_t_7; goto __pyx_L7_bool_binop_done; } __pyx_t_7 = ((__pyx_v_dfs > (-__pyx_v_x_tol)) != 0); __pyx_t_2 = __pyx_t_7; __pyx_L7_bool_binop_done:; if (__pyx_t_2) { /* … */ } /* … */ __pyx_t_7 = ((__pyx_v_dfs < __pyx_v_x_tol) != 0); if (__pyx_t_7) { } else { __pyx_t_2 = __pyx_t_7; goto __pyx_L7_bool_binop_done; } __pyx_t_7 = ((__pyx_v_dfs > (-__pyx_v_x_tol)) != 0); __pyx_t_2 = __pyx_t_7; __pyx_L7_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+489: u[1] += fs; sptr[1] = fs
__pyx_t_6 = 1; *((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_6)) )) += __pyx_v_fs; __pyx_t_6 = 1; *((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_sptr.data) + __pyx_t_6)) )) = __pyx_v_fs; /* … */ __pyx_t_6 = 1; *((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_6)) )) += __pyx_v_fs; __pyx_t_6 = 1; *((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_sptr.data) + __pyx_t_6)) )) = __pyx_v_fs;
+490: break
goto __pyx_L5_break; /* … */ goto __pyx_L5_break;
+491: if fs >= sw_fs + 1 or fs < -sw_fs:
__pyx_t_7 = ((__pyx_v_fs >= (__pyx_v_sw_fs + 1)) != 0); if (!__pyx_t_7) { } else { __pyx_t_2 = __pyx_t_7; goto __pyx_L10_bool_binop_done; } __pyx_t_7 = ((__pyx_v_fs < (-__pyx_v_sw_fs)) != 0); __pyx_t_2 = __pyx_t_7; __pyx_L10_bool_binop_done:; if (__pyx_t_2) { /* … */ } } /*else*/ { /* … */ __pyx_t_7 = ((__pyx_v_fs >= (__pyx_v_sw_fs + 1)) != 0); if (!__pyx_t_7) { } else { __pyx_t_2 = __pyx_t_7; goto __pyx_L10_bool_binop_done; } __pyx_t_7 = ((__pyx_v_fs < (-__pyx_v_sw_fs)) != 0); __pyx_t_2 = __pyx_t_7; __pyx_L10_bool_binop_done:; if (__pyx_t_2) { /* … */ } } /*else*/ {
+492: u[1] += sptr[1]
__pyx_t_6 = 1; __pyx_t_1 = 1; *((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_1)) )) += (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_sptr.data) + __pyx_t_6)) ))); /* … */ __pyx_t_6 = 1; __pyx_t_1 = 1; *((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_1)) )) += (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_sptr.data) + __pyx_t_6)) )));
+493: break
goto __pyx_L5_break; /* … */ goto __pyx_L5_break;
494: else:
+495: u[1] += fs; sptr[1] = fs
__pyx_t_6 = 1; *((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_u.data) + __pyx_t_6)) )) += __pyx_v_fs; __pyx_t_6 = 1; *((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_sptr.data) + __pyx_t_6)) )) = __pyx_v_fs; } __pyx_L5_break:; /* … */ __pyx_t_6 = 1; *((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_u.data) + __pyx_t_6)) )) += __pyx_v_fs; __pyx_t_6 = 1; *((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_sptr.data) + __pyx_t_6)) )) = __pyx_v_fs; } __pyx_L5_break:;
496:
+497: def update_pixel_map_nm(float_t[:, :, ::1] I_n, float_t[:, ::1] W, float_t[:, ::1] I0, float_t[:, :, ::1] u0,
/* Python wrapper */ static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_5update_pixel_map_nm(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_6pyrost_3bin_6pyrost_4update_pixel_map_nm[] = "update_pixel_map_nm(signatures, args, kwargs, defaults)\nUpdate the pixel mapping by minimizing mean-squared-error\n (MSE). Perform an iterative Newton's method within the search window\n of `sw_ss`, `sw_fs` size along the slow and fast axes accordingly\n in order to minimize the MSE. only works with 1D scans.\n\n Parameters\n ----------\n I_n : numpy.ndarray\n Measured intensity frames.\n W : numpy.ndarray\n Measured frames' whitefield.\n I0 : numpy.ndarray\n Reference image of the sample.\n u : numpy.ndarray\n Initial pixel mapping.\n di : numpy.ndarray\n Sample's translations along the slow detector axis\n in pixels.\n dj : numpy.ndarray\n Sample's translations along the fast detector axis\n in pixels.\n sw_ss : int\n Search window size in pixels along the slow detector\n axis.\n sw_fs : int\n Search window size in pixels along the fast detector\n axis.\n ls : float\n Reference image length scale in pixels.\n max_iter : int, optional\n Maximum number of iterations.\n x_tol : float, optional\n Tolerance for termination by the change of `u`.\n num_threads : int, optional\n Number of threads.\n\n Returns\n -------\n u : numpy.ndarray\n Updated pixel mapping array.\n\n Notes\n -----\n :func:`update_pixel_map_nm` employs finite difference of MSE\n instead of conventional numerical derivative. Finite difference\n yields smaller variance in the case of noise present in the data\n [MW]_:\n\n .. math::\n \\varepsilon (h) = \\frac{f(x + h) - f(x)}{h}\n\n Where variance is minimized if :math:`h = h_M`:\n\n .. math::\n h_M = 8^{0.25} \\sqrt{\\frac{\\mathrm{Var}[f]}\n {\\left| \\max{f^{\\prime\\prime}} \\right|}}\n\n See Also\n --------\n update_pixel_map_gs : Description of error metric which\n is being minimized.\n\n References\n "" ----------\n .. [MW] Jorge J. Mor\303\251, and Stefan M. Wild, \"Estimating Derivatives\n of Noisy Simulations\", ACM Trans. Math. Softw., Vol. 38,\n Number 3, April 2012.\n "; static PyMethodDef __pyx_mdef_6pyrost_3bin_6pyrost_5update_pixel_map_nm = {"update_pixel_map_nm", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pyrost_3bin_6pyrost_5update_pixel_map_nm, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_4update_pixel_map_nm}; static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_5update_pixel_map_nm(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, 497, __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, 497, __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, 497, __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, 497, __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, 497, __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_4update_pixel_map_nm(__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_4update_pixel_map_nm(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("update_pixel_map_nm", 0); __Pyx_INCREF(__pyx_v_kwargs); __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 497, __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, 497, __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, 497, __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, 497, __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, 497, __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, 497, __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, 497, __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, 497, __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, 497, __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, 497, __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, 497, __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, 497, __pyx_L1_error) __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 497, __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, 497, __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, 497, __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, 497, __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, 497, __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, 497, __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, 497, __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, 497, __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, 497, __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, 497, __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, 497, __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, 497, __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, 497, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 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, 497, __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, 497, __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, 497, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 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, 497, __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_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, 497, __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_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, 497, __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, 497, __pyx_L1_error) goto __pyx_L10_break; } __pyx_L10_break:; __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 497, __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, 497, __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, 497, __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, 497, __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, 497, __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_) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s_); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 497, __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, 497, __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__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 497, __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, 497, __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, 497, __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, 497, __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, 497, __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, 497, __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__3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 497, __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, 497, __pyx_L1_error) } __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 497, __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__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 497, __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, 497, __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, 497, __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, 497, __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_76__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_defaults10, __pyx_self)->__pyx_arg_max_iter); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyFloat_FromDouble(__Pyx_CyFunction_Defaults(__pyx_defaults10, __pyx_self)->__pyx_arg_x_tol); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults10, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 497, __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_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 2, __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, 497, __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__pyx_pw_6pyrost_3bin_6pyrost_27update_pixel_map_nm(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_0__pyx_mdef_6pyrost_3bin_6pyrost_27update_pixel_map_nm = {"__pyx_fuse_0update_pixel_map_nm", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0__pyx_pw_6pyrost_3bin_6pyrost_27update_pixel_map_nm, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_4update_pixel_map_nm}; static PyObject *__pyx_fuse_0__pyx_pw_6pyrost_3bin_6pyrost_27update_pixel_map_nm(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 } }; int __pyx_v_sw_fs; __pyx_t_5numpy_float64_t __pyx_v_ls; int __pyx_v_max_iter; __pyx_t_5numpy_float64_t __pyx_v_x_tol; unsigned int __pyx_v_num_threads; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("update_pixel_map_nm (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_fs,&__pyx_n_s_ls,&__pyx_n_s_max_iter,&__pyx_n_s_x_tol,&__pyx_n_s_num_threads,0}; PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0}; __pyx_defaults10 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults10, __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 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("update_pixel_map_nm", 0, 8, 11, 1); __PYX_ERR(0, 497, __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("update_pixel_map_nm", 0, 8, 11, 2); __PYX_ERR(0, 497, __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("update_pixel_map_nm", 0, 8, 11, 3); __PYX_ERR(0, 497, __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("update_pixel_map_nm", 0, 8, 11, 4); __PYX_ERR(0, 497, __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("update_pixel_map_nm", 0, 8, 11, 5); __PYX_ERR(0, 497, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_fs)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("update_pixel_map_nm", 0, 8, 11, 6); __PYX_ERR(0, 497, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 7: if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ls)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("update_pixel_map_nm", 0, 8, 11, 7); __PYX_ERR(0, 497, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 8: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_iter); 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_x_tol); 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, "update_pixel_map_nm") < 0)) __PYX_ERR(0, 497, __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); 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_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 497, __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, 497, __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, 497, __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, 497, __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, 498, __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, 498, __pyx_L3_error) __pyx_v_sw_fs = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_sw_fs == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 498, __pyx_L3_error) __pyx_v_ls = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_ls == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 498, __pyx_L3_error) if (values[8]) { __pyx_v_max_iter = __Pyx_PyInt_As_int(values[8]); if (unlikely((__pyx_v_max_iter == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 499, __pyx_L3_error) } else { __pyx_v_max_iter = __pyx_dynamic_args->__pyx_arg_max_iter; } if (values[9]) { __pyx_v_x_tol = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_x_tol == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 499, __pyx_L3_error) } else { __pyx_v_x_tol = __pyx_dynamic_args->__pyx_arg_x_tol; } 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, 499, __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("update_pixel_map_nm", 0, 8, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 497, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyrost.bin.pyrost.update_pixel_map_nm", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_26update_pixel_map_nm(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u0, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_fs, __pyx_v_ls, __pyx_v_max_iter, __pyx_v_x_tol, __pyx_v_num_threads); 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_26update_pixel_map_nm(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, int __pyx_v_sw_fs, __pyx_t_5numpy_float64_t __pyx_v_ls, int __pyx_v_max_iter, __pyx_t_5numpy_float64_t __pyx_v_x_tol, unsigned int __pyx_v_num_threads) { PyObject *__pyx_v_dtype = 0; npy_intp __pyx_v_a; npy_intp __pyx_v_b; npy_intp __pyx_v_c; CYTHON_UNUSED npy_intp __pyx_v_aa; CYTHON_UNUSED npy_intp __pyx_v_bb; int __pyx_v_j; int __pyx_v_k; int __pyx_v_t; __Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_u_buf = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_I = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_sptr = { 0, 0, { 0 }, { 0 }, { 0 } }; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_0update_pixel_map_nm", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __PYX_XDEC_MEMVIEW(&__pyx_t_5, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_13, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_19, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_20, 1); __Pyx_AddTraceback("pyrost.bin.pyrost.update_pixel_map_nm", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_dtype); __PYX_XDEC_MEMVIEW(&__pyx_v_u, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_u_buf, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_I, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_sptr, 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_78__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_defaults11, __pyx_self)->__pyx_arg_max_iter); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyFloat_FromDouble(__Pyx_CyFunction_Defaults(__pyx_defaults11, __pyx_self)->__pyx_arg_x_tol); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__Pyx_CyFunction_Defaults(__pyx_defaults11, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 497, __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_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 2, __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, 497, __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__pyx_pw_6pyrost_3bin_6pyrost_29update_pixel_map_nm(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_1__pyx_mdef_6pyrost_3bin_6pyrost_29update_pixel_map_nm = {"__pyx_fuse_1update_pixel_map_nm", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1__pyx_pw_6pyrost_3bin_6pyrost_29update_pixel_map_nm, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_4update_pixel_map_nm}; static PyObject *__pyx_fuse_1__pyx_pw_6pyrost_3bin_6pyrost_29update_pixel_map_nm(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 } }; int __pyx_v_sw_fs; __pyx_t_5numpy_float32_t __pyx_v_ls; int __pyx_v_max_iter; __pyx_t_5numpy_float32_t __pyx_v_x_tol; unsigned int __pyx_v_num_threads; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("update_pixel_map_nm (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_fs,&__pyx_n_s_ls,&__pyx_n_s_max_iter,&__pyx_n_s_x_tol,&__pyx_n_s_num_threads,0}; PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0}; __pyx_defaults11 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults11, __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 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("update_pixel_map_nm", 0, 8, 11, 1); __PYX_ERR(0, 497, __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("update_pixel_map_nm", 0, 8, 11, 2); __PYX_ERR(0, 497, __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("update_pixel_map_nm", 0, 8, 11, 3); __PYX_ERR(0, 497, __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("update_pixel_map_nm", 0, 8, 11, 4); __PYX_ERR(0, 497, __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("update_pixel_map_nm", 0, 8, 11, 5); __PYX_ERR(0, 497, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_fs)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("update_pixel_map_nm", 0, 8, 11, 6); __PYX_ERR(0, 497, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 7: if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ls)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("update_pixel_map_nm", 0, 8, 11, 7); __PYX_ERR(0, 497, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 8: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_iter); 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_x_tol); 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, "update_pixel_map_nm") < 0)) __PYX_ERR(0, 497, __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); 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_float32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 497, __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, 497, __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, 497, __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, 497, __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, 498, __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, 498, __pyx_L3_error) __pyx_v_sw_fs = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_sw_fs == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 498, __pyx_L3_error) __pyx_v_ls = __pyx_PyFloat_AsFloat(values[7]); if (unlikely((__pyx_v_ls == ((npy_float32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 498, __pyx_L3_error) if (values[8]) { __pyx_v_max_iter = __Pyx_PyInt_As_int(values[8]); if (unlikely((__pyx_v_max_iter == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 499, __pyx_L3_error) } else { __pyx_v_max_iter = __pyx_dynamic_args->__pyx_arg_max_iter; } if (values[9]) { __pyx_v_x_tol = __pyx_PyFloat_AsFloat(values[9]); if (unlikely((__pyx_v_x_tol == ((npy_float32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 499, __pyx_L3_error) } else { __pyx_v_x_tol = __pyx_dynamic_args->__pyx_arg_x_tol; } 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, 499, __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("update_pixel_map_nm", 0, 8, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 497, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyrost.bin.pyrost.update_pixel_map_nm", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_28update_pixel_map_nm(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u0, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_fs, __pyx_v_ls, __pyx_v_max_iter, __pyx_v_x_tol, __pyx_v_num_threads); 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_28update_pixel_map_nm(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, int __pyx_v_sw_fs, __pyx_t_5numpy_float32_t __pyx_v_ls, int __pyx_v_max_iter, __pyx_t_5numpy_float32_t __pyx_v_x_tol, unsigned int __pyx_v_num_threads) { PyObject *__pyx_v_dtype = 0; npy_intp __pyx_v_a; npy_intp __pyx_v_b; npy_intp __pyx_v_c; CYTHON_UNUSED npy_intp __pyx_v_aa; CYTHON_UNUSED npy_intp __pyx_v_bb; int __pyx_v_j; int __pyx_v_k; int __pyx_v_t; __Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_u_buf = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_I = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_sptr = { 0, 0, { 0 }, { 0 }, { 0 } }; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_1update_pixel_map_nm", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __PYX_XDEC_MEMVIEW(&__pyx_t_5, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_13, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_19, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_20, 1); __Pyx_AddTraceback("pyrost.bin.pyrost.update_pixel_map_nm", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_dtype); __PYX_XDEC_MEMVIEW(&__pyx_v_u, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_u_buf, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_I, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_sptr, 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(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 497, __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_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; /* … */ __pyx_tuple__29 = PyTuple_Pack(24, __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_fs, __pyx_n_s_ls, __pyx_n_s_max_iter, __pyx_n_s_x_tol, __pyx_n_s_num_threads, __pyx_n_s_dtype, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_c, __pyx_n_s_aa, __pyx_n_s_bb, __pyx_n_s_j, __pyx_n_s_k, __pyx_n_s_t, __pyx_n_s_u, __pyx_n_s_u_buf, __pyx_n_s_I, __pyx_n_s_sptr); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 497, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__29); __Pyx_GIVEREF(__pyx_tuple__29); __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_6pyrost_3bin_6pyrost_27update_pixel_map_nm, 0, __pyx_n_s_update_pixel_map_nm, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__30)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (!__Pyx_CyFunction_InitDefaults(__pyx_t_2, sizeof(__pyx_defaults10), 0)) __PYX_ERR(0, 497, __pyx_L1_error) __Pyx_CyFunction_Defaults(__pyx_defaults10, __pyx_t_2)->__pyx_arg_max_iter = 0x1F4; __Pyx_CyFunction_Defaults(__pyx_defaults10, __pyx_t_2)->__pyx_arg_x_tol = 1e-12; __Pyx_CyFunction_Defaults(__pyx_defaults10, __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_76__defaults__); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_float64_t, __pyx_t_2) < 0) __PYX_ERR(0, 497, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_6pyrost_3bin_6pyrost_29update_pixel_map_nm, 0, __pyx_n_s_update_pixel_map_nm, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__30)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (!__Pyx_CyFunction_InitDefaults(__pyx_t_2, sizeof(__pyx_defaults11), 0)) __PYX_ERR(0, 497, __pyx_L1_error) __Pyx_CyFunction_Defaults(__pyx_defaults11, __pyx_t_2)->__pyx_arg_max_iter = 0x1F4; __Pyx_CyFunction_Defaults(__pyx_defaults11, __pyx_t_2)->__pyx_arg_x_tol = 1e-12; __Pyx_CyFunction_Defaults(__pyx_defaults11, __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_78__defaults__); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_float32_t, __pyx_t_2) < 0) __PYX_ERR(0, 497, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_FusedFunction_New(&__pyx_mdef_6pyrost_3bin_6pyrost_5update_pixel_map_nm, 0, __pyx_n_s_update_pixel_map_nm, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__30)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 497, __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_3; __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_update_pixel_map_nm, __pyx_t_2) < 0) __PYX_ERR(0, 497, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_codeobj__30 = (PyObject*)__Pyx_PyCode_New(11, 0, 24, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__29, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pyrost_bin_pyrost_pyx, __pyx_n_s_update_pixel_map_nm, 497, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__30)) __PYX_ERR(0, 497, __pyx_L1_error)
498: float_t[::1] di, float_t[::1] dj, int sw_fs, float_t ls,
+499: int max_iter=500, float_t x_tol=1e-12, unsigned num_threads=1):
__pyx_t_1 = __Pyx_PyInt_From_long(0x1F4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyFloat_FromDouble(1e-12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyInt_From_long(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
500: r"""Update the pixel mapping by minimizing mean-squared-error
501: (MSE). Perform an iterative Newton's method within the search window
502: of `sw_ss`, `sw_fs` size along the slow and fast axes accordingly
503: in order to minimize the MSE. only works with 1D scans.
504:
505: Parameters
506: ----------
507: I_n : numpy.ndarray
508: Measured intensity frames.
509: W : numpy.ndarray
510: Measured frames' whitefield.
511: I0 : numpy.ndarray
512: Reference image of the sample.
513: u : numpy.ndarray
514: Initial pixel mapping.
515: di : numpy.ndarray
516: Sample's translations along the slow detector axis
517: in pixels.
518: dj : numpy.ndarray
519: Sample's translations along the fast detector axis
520: in pixels.
521: sw_ss : int
522: Search window size in pixels along the slow detector
523: axis.
524: sw_fs : int
525: Search window size in pixels along the fast detector
526: axis.
527: ls : float
528: Reference image length scale in pixels.
529: max_iter : int, optional
530: Maximum number of iterations.
531: x_tol : float, optional
532: Tolerance for termination by the change of `u`.
533: num_threads : int, optional
534: Number of threads.
535:
536: Returns
537: -------
538: u : numpy.ndarray
539: Updated pixel mapping array.
540:
541: Notes
542: -----
543: :func:`update_pixel_map_nm` employs finite difference of MSE
544: instead of conventional numerical derivative. Finite difference
545: yields smaller variance in the case of noise present in the data
546: [MW]_:
547:
548: .. math::
549: \varepsilon (h) = \frac{f(x + h) - f(x)}{h}
550:
551: Where variance is minimized if :math:`h = h_M`:
552:
553: .. math::
554: h_M = 8^{0.25} \sqrt{\frac{\mathrm{Var}[f]}
555: {\left| \max{f^{\prime\prime}} \right|}}
556:
557: See Also
558: --------
559: update_pixel_map_gs : Description of error metric which
560: is being minimized.
561:
562: References
563: ----------
564: .. [MW] Jorge J. Moré, and Stefan M. Wild, "Estimating Derivatives
565: of Noisy Simulations", ACM Trans. Math. Softw., Vol. 38,
566: Number 3, April 2012.
567: """
568: cdef:
+569: str dtype = 'float64' if float_t is np.float64_t else 'float32'
if ((1 != 0)) { __Pyx_INCREF(__pyx_n_u_float64); __pyx_t_1 = __pyx_n_u_float64; } else { __Pyx_INCREF(__pyx_n_u_float32); __pyx_t_1 = __pyx_n_u_float32; } __pyx_v_dtype = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* … */ if ((0 != 0)) { __Pyx_INCREF(__pyx_n_u_float64); __pyx_t_1 = __pyx_n_u_float64; } else { __Pyx_INCREF(__pyx_n_u_float32); __pyx_t_1 = __pyx_n_u_float32; } __pyx_v_dtype = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+570: np.npy_intp a = I_n.shape[0], b = I_n.shape[1], c = I_n.shape[2]
__pyx_v_a = (__pyx_v_I_n.shape[0]); __pyx_v_b = (__pyx_v_I_n.shape[1]); __pyx_v_c = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_a = (__pyx_v_I_n.shape[0]); __pyx_v_b = (__pyx_v_I_n.shape[1]); __pyx_v_c = (__pyx_v_I_n.shape[2]);
+571: np.npy_intp aa = I0.shape[0], bb = I0.shape[1]
__pyx_v_aa = (__pyx_v_I0.shape[0]); __pyx_v_bb = (__pyx_v_I0.shape[1]); /* … */ __pyx_v_aa = (__pyx_v_I0.shape[0]); __pyx_v_bb = (__pyx_v_I0.shape[1]);
572: int j, k, t
+573: float_t[:, :, ::1] u = np.empty((b, c, 2), dtype=dtype)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_Py_intptr_t(__pyx_v_b); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyInt_From_Py_intptr_t(__pyx_v_c); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 573, __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_3); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_int_2); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 573, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 573, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_u = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL; /* … */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_Py_intptr_t(__pyx_v_b); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyInt_From_Py_intptr_t(__pyx_v_c); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 573, __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_3); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_int_2); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 573, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 573, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_u = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL;
+574: float_t[:, ::1] u_buf = np.empty((num_threads, 2), dtype=dtype)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_2); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 574, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_u_buf = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_2); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 574, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_u_buf = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL;
+575: float_t[:, ::1] I = np.empty((num_threads, a + 1), dtype=dtype)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__pyx_v_num_threads); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyInt_From_long((__pyx_v_a + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 575, __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_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 575, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 575, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_I = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__pyx_v_num_threads); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyInt_From_long((__pyx_v_a + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 575, __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_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 575, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 575, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_I = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL;
+576: float_t[:, ::1] sptr = np.zeros((num_threads, 3), dtype=dtype) # ss, fs, l1
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__pyx_v_num_threads); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 576, __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(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_3); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 576, __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 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 576, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_sptr = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__pyx_v_num_threads); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 576, __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(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_3); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 576, __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 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 576, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_sptr = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL;
+577: for k in prange(c, schedule='static', num_threads=num_threads, nogil=True):
{ #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { __pyx_t_7 = __pyx_v_c; 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 lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) lastprivate(__pyx_v_t) schedule(static) __pyx_t_7 = __pyx_v_c; 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 lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) lastprivate(__pyx_v_t) schedule(static) num_threads(__pyx_v_num_threads) #endif /* _OPENMP */ for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_9; __pyx_t_8++){ { __pyx_v_k = (int)(0 + 1 * __pyx_t_8); /* Initialize private variables to invalid values */ __pyx_v_j = ((int)0xbad0bad0); __pyx_v_t = ((int)0xbad0bad0); /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } } /* … */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { __pyx_t_7 = __pyx_v_c; 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 lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) lastprivate(__pyx_v_t) schedule(static) __pyx_t_7 = __pyx_v_c; 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 lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) lastprivate(__pyx_v_t) schedule(static) num_threads(__pyx_v_num_threads) #endif /* _OPENMP */ for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_9; __pyx_t_8++){ { __pyx_v_k = (int)(0 + 1 * __pyx_t_8); /* Initialize private variables to invalid values */ __pyx_v_j = ((int)0xbad0bad0); __pyx_v_t = ((int)0xbad0bad0); /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+578: t = openmp.omp_get_thread_num()
__pyx_v_t = omp_get_thread_num(); /* … */ __pyx_v_t = omp_get_thread_num();
+579: for j in range(b):
__pyx_t_10 = __pyx_v_b; __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_j = __pyx_t_12; /* … */ __pyx_t_10 = __pyx_v_b; __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_j = __pyx_t_12;
+580: krig_data_c(I[t], I_n, W, u0, j, k, ls)
__pyx_t_13.data = __pyx_v_I.data; __pyx_t_13.memview = __pyx_v_I.memview; __PYX_INC_MEMVIEW(&__pyx_t_13, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_t; Py_ssize_t __pyx_tmp_stride = __pyx_v_I.strides[0]; __pyx_t_13.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_13.shape[0] = __pyx_v_I.shape[1]; __pyx_t_13.strides[0] = __pyx_v_I.strides[1]; __pyx_t_13.suboffsets[0] = -1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_krig_data_c(__pyx_t_13, __pyx_v_I_n, __pyx_v_W, __pyx_v_u0, __pyx_v_j, __pyx_v_k, __pyx_v_ls); __PYX_XDEC_MEMVIEW(&__pyx_t_13, 0); __pyx_t_13.memview = NULL; __pyx_t_13.data = NULL; /* … */ __pyx_t_13.data = __pyx_v_I.data; __pyx_t_13.memview = __pyx_v_I.memview; __PYX_INC_MEMVIEW(&__pyx_t_13, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_t; Py_ssize_t __pyx_tmp_stride = __pyx_v_I.strides[0]; __pyx_t_13.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_13.shape[0] = __pyx_v_I.shape[1]; __pyx_t_13.strides[0] = __pyx_v_I.strides[1]; __pyx_t_13.suboffsets[0] = -1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_krig_data_c(__pyx_t_13, __pyx_v_I_n, __pyx_v_W, __pyx_v_u0, __pyx_v_j, __pyx_v_k, __pyx_v_ls); __PYX_XDEC_MEMVIEW(&__pyx_t_13, 0); __pyx_t_13.memview = NULL; __pyx_t_13.data = NULL;
+581: u_buf[t, 0] = u0[0, j, k]; u_buf[t, 1] = u0[1, j, k]
__pyx_t_14 = 0; __pyx_t_15 = __pyx_v_j; __pyx_t_16 = __pyx_v_k; __pyx_t_17 = __pyx_v_t; __pyx_t_18 = 0; *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_u_buf.data + __pyx_t_17 * __pyx_v_u_buf.strides[0]) )) + __pyx_t_18)) )) = (*((__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_18 = __pyx_v_t; __pyx_t_17 = 1; *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_u_buf.data + __pyx_t_18 * __pyx_v_u_buf.strides[0]) )) + __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 = __pyx_v_t; __pyx_t_18 = 0; *((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_u_buf.data + __pyx_t_17 * __pyx_v_u_buf.strides[0]) )) + __pyx_t_18)) )) = (*((__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_18 = __pyx_v_t; __pyx_t_17 = 1; *((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_u_buf.data + __pyx_t_18 * __pyx_v_u_buf.strides[0]) )) + __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)) )));
+582: newton_1d_c(sptr[t], I[t], I0, u_buf[t], di, dj, max_iter, x_tol, sw_fs)
__pyx_t_13.data = __pyx_v_sptr.data; __pyx_t_13.memview = __pyx_v_sptr.memview; __PYX_INC_MEMVIEW(&__pyx_t_13, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_t; Py_ssize_t __pyx_tmp_stride = __pyx_v_sptr.strides[0]; __pyx_t_13.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_13.shape[0] = __pyx_v_sptr.shape[1]; __pyx_t_13.strides[0] = __pyx_v_sptr.strides[1]; __pyx_t_13.suboffsets[0] = -1; __pyx_t_19.data = __pyx_v_I.data; __pyx_t_19.memview = __pyx_v_I.memview; __PYX_INC_MEMVIEW(&__pyx_t_19, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_t; Py_ssize_t __pyx_tmp_stride = __pyx_v_I.strides[0]; __pyx_t_19.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_19.shape[0] = __pyx_v_I.shape[1]; __pyx_t_19.strides[0] = __pyx_v_I.strides[1]; __pyx_t_19.suboffsets[0] = -1; __pyx_t_20.data = __pyx_v_u_buf.data; __pyx_t_20.memview = __pyx_v_u_buf.memview; __PYX_INC_MEMVIEW(&__pyx_t_20, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_t; Py_ssize_t __pyx_tmp_stride = __pyx_v_u_buf.strides[0]; __pyx_t_20.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_20.shape[0] = __pyx_v_u_buf.shape[1]; __pyx_t_20.strides[0] = __pyx_v_u_buf.strides[1]; __pyx_t_20.suboffsets[0] = -1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_newton_1d_c(__pyx_t_13, __pyx_t_19, __pyx_v_I0, __pyx_t_20, __pyx_v_di, __pyx_v_dj, __pyx_v_max_iter, __pyx_v_x_tol, __pyx_v_sw_fs); __PYX_XDEC_MEMVIEW(&__pyx_t_13, 0); __pyx_t_13.memview = NULL; __pyx_t_13.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_19, 0); __pyx_t_19.memview = NULL; __pyx_t_19.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_20, 0); __pyx_t_20.memview = NULL; __pyx_t_20.data = NULL; /* … */ __pyx_t_13.data = __pyx_v_sptr.data; __pyx_t_13.memview = __pyx_v_sptr.memview; __PYX_INC_MEMVIEW(&__pyx_t_13, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_t; Py_ssize_t __pyx_tmp_stride = __pyx_v_sptr.strides[0]; __pyx_t_13.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_13.shape[0] = __pyx_v_sptr.shape[1]; __pyx_t_13.strides[0] = __pyx_v_sptr.strides[1]; __pyx_t_13.suboffsets[0] = -1; __pyx_t_19.data = __pyx_v_I.data; __pyx_t_19.memview = __pyx_v_I.memview; __PYX_INC_MEMVIEW(&__pyx_t_19, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_t; Py_ssize_t __pyx_tmp_stride = __pyx_v_I.strides[0]; __pyx_t_19.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_19.shape[0] = __pyx_v_I.shape[1]; __pyx_t_19.strides[0] = __pyx_v_I.strides[1]; __pyx_t_19.suboffsets[0] = -1; __pyx_t_20.data = __pyx_v_u_buf.data; __pyx_t_20.memview = __pyx_v_u_buf.memview; __PYX_INC_MEMVIEW(&__pyx_t_20, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_t; Py_ssize_t __pyx_tmp_stride = __pyx_v_u_buf.strides[0]; __pyx_t_20.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_20.shape[0] = __pyx_v_u_buf.shape[1]; __pyx_t_20.strides[0] = __pyx_v_u_buf.strides[1]; __pyx_t_20.suboffsets[0] = -1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_newton_1d_c(__pyx_t_13, __pyx_t_19, __pyx_v_I0, __pyx_t_20, __pyx_v_di, __pyx_v_dj, __pyx_v_max_iter, __pyx_v_x_tol, __pyx_v_sw_fs); __PYX_XDEC_MEMVIEW(&__pyx_t_13, 0); __pyx_t_13.memview = NULL; __pyx_t_13.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_19, 0); __pyx_t_19.memview = NULL; __pyx_t_19.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_20, 0); __pyx_t_20.memview = NULL; __pyx_t_20.data = NULL;
+583: u[0, j, k] = u_buf[t, 0]; u[1, j, k] = u_buf[t, 1]
__pyx_t_14 = __pyx_v_t; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = __pyx_v_j; __pyx_t_18 = __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=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_u_buf.data + __pyx_t_14 * __pyx_v_u_buf.strides[0]) )) + __pyx_t_15)) ))); __pyx_t_15 = __pyx_v_t; __pyx_t_14 = 1; __pyx_t_18 = 1; __pyx_t_17 = __pyx_v_j; __pyx_t_16 = __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_18 * __pyx_v_u.strides[0]) ) + __pyx_t_17 * __pyx_v_u.strides[1]) )) + __pyx_t_16)) )) = (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_u_buf.data + __pyx_t_15 * __pyx_v_u_buf.strides[0]) )) + __pyx_t_14)) ))); } } } } } } #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_t; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = __pyx_v_j; __pyx_t_18 = __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=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_u_buf.data + __pyx_t_14 * __pyx_v_u_buf.strides[0]) )) + __pyx_t_15)) ))); __pyx_t_15 = __pyx_v_t; __pyx_t_14 = 1; __pyx_t_18 = 1; __pyx_t_17 = __pyx_v_j; __pyx_t_16 = __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_18 * __pyx_v_u.strides[0]) ) + __pyx_t_17 * __pyx_v_u.strides[1]) )) + __pyx_t_16)) )) = (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_u_buf.data + __pyx_t_15 * __pyx_v_u_buf.strides[0]) )) + __pyx_t_14)) ))); } } } } } } #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 }
+584: return np.asarray(u)
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_asarray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_u, 3, (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, 584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_asarray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_u, 3, (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, 584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
585:
+586: cdef void update_t_c(float_t[:, :, ::1] SS_m, float_t[:, ::1] I, float_t[:, ::1] rss, float_t[:, ::1] I0,
static void __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_update_t_c(__Pyx_memviewslice __pyx_v_SS_m, __Pyx_memviewslice __pyx_v_I, __Pyx_memviewslice __pyx_v_rss, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_dij, int __pyx_v_sw_ss, int __pyx_v_sw_fs) { int __pyx_v_ii; int __pyx_v_jj; int __pyx_v_ss_min; int __pyx_v_fs_min; int __pyx_v_ss_max; int __pyx_v_fs_max; __pyx_t_5numpy_float64_t __pyx_v_mse_min; __pyx_t_5numpy_float64_t __pyx_v_mse_var; __pyx_t_5numpy_float64_t __pyx_v_mse_max; __pyx_t_5numpy_float64_t __pyx_v_l1; __pyx_t_5numpy_float64_t __pyx_v_mu; __pyx_t_5numpy_float64_t __pyx_v_m_ptr[2]; __pyx_t_5numpy_float64_t __pyx_v_mse_m[7]; /* … */ /* function exit code */ } static void __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_update_t_c(__Pyx_memviewslice __pyx_v_SS_m, __Pyx_memviewslice __pyx_v_I, __Pyx_memviewslice __pyx_v_rss, __Pyx_memviewslice __pyx_v_I0, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_dij, int __pyx_v_sw_ss, int __pyx_v_sw_fs) { int __pyx_v_ii; int __pyx_v_jj; int __pyx_v_ss_min; int __pyx_v_fs_min; int __pyx_v_ss_max; int __pyx_v_fs_max; __pyx_t_5numpy_float32_t __pyx_v_mse_min; __pyx_t_5numpy_float32_t __pyx_v_mse_var; __pyx_t_5numpy_float32_t __pyx_v_mse_max; __pyx_t_5numpy_float32_t __pyx_v_l1; __pyx_t_5numpy_float32_t __pyx_v_mu; __pyx_t_5numpy_float32_t __pyx_v_m_ptr[2]; __pyx_t_5numpy_float32_t __pyx_v_mse_m[7]; /* … */ /* function exit code */ }
587: float_t[:, :, ::1] u, float_t[::1] dij, int sw_ss, int sw_fs) nogil:
588: cdef:
589: int ii, jj
+590: int ss_min = -sw_ss, fs_min = -sw_fs, ss_max = -sw_ss, fs_max = -sw_fs
__pyx_v_ss_min = (-__pyx_v_sw_ss); __pyx_v_fs_min = (-__pyx_v_sw_fs); __pyx_v_ss_max = (-__pyx_v_sw_ss); __pyx_v_fs_max = (-__pyx_v_sw_fs); /* … */ __pyx_v_ss_min = (-__pyx_v_sw_ss); __pyx_v_fs_min = (-__pyx_v_sw_fs); __pyx_v_ss_max = (-__pyx_v_sw_ss); __pyx_v_fs_max = (-__pyx_v_sw_fs);
+591: float_t mse_min = FLOAT_MAX, mse_var = FLOAT_MAX, mse_max = -FLOAT_MAX, l1, mu
__pyx_v_mse_min = 1.7976931348623157e+308; __pyx_v_mse_var = 1.7976931348623157e+308; __pyx_v_mse_max = -1.7976931348623157e+308; /* … */ __pyx_v_mse_min = 1.7976931348623157e+308; __pyx_v_mse_var = 1.7976931348623157e+308; __pyx_v_mse_max = -1.7976931348623157e+308;
592: float_t m_ptr[2]
593: float_t mse_m[7]
+594: for ii in range(-sw_ss, sw_ss + 1):
__pyx_t_1 = (__pyx_v_sw_ss + 1); __pyx_t_2 = __pyx_t_1; for (__pyx_t_3 = (-__pyx_v_sw_ss); __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_ii = __pyx_t_3; /* … */ __pyx_t_1 = (__pyx_v_sw_ss + 1); __pyx_t_2 = __pyx_t_1; for (__pyx_t_3 = (-__pyx_v_sw_ss); __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_ii = __pyx_t_3;
+595: for jj in range(-sw_fs, sw_fs + 1):
__pyx_t_4 = (__pyx_v_sw_fs + 1); __pyx_t_5 = __pyx_t_4; for (__pyx_t_6 = (-__pyx_v_sw_fs); __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_jj = __pyx_t_6; /* … */ __pyx_t_4 = (__pyx_v_sw_fs + 1); __pyx_t_5 = __pyx_t_4; for (__pyx_t_6 = (-__pyx_v_sw_fs); __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_jj = __pyx_t_6;
+596: mse_diff_bi(m_ptr, SS_m, I, rss, I0, u, dij[0], dij[1], dij[0] + ii, dij[1] + jj)
__pyx_t_7 = 0; __pyx_t_8 = 1; __pyx_t_9 = 0; __pyx_t_10 = 1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_diff_bi(__pyx_v_m_ptr, __pyx_v_SS_m, __pyx_v_I, __pyx_v_rss, __pyx_v_I0, __pyx_v_u, (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_7)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_8)) ))), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_9)) ))) + __pyx_v_ii), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_10)) ))) + __pyx_v_jj)); /* … */ __pyx_t_7 = 0; __pyx_t_8 = 1; __pyx_t_9 = 0; __pyx_t_10 = 1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_diff_bi(__pyx_v_m_ptr, __pyx_v_SS_m, __pyx_v_I, __pyx_v_rss, __pyx_v_I0, __pyx_v_u, (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_7)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_8)) ))), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_9)) ))) + __pyx_v_ii), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_10)) ))) + __pyx_v_jj));
+597: if m_ptr[0] < mse_min:
__pyx_t_11 = (((__pyx_v_m_ptr[0]) < __pyx_v_mse_min) != 0); if (__pyx_t_11) { /* … */ } /* … */ __pyx_t_11 = (((__pyx_v_m_ptr[0]) < __pyx_v_mse_min) != 0); if (__pyx_t_11) { /* … */ }
+598: mse_min = m_ptr[0]; mse_var = m_ptr[1]; ss_min = ii; fs_min = jj
__pyx_v_mse_min = (__pyx_v_m_ptr[0]); __pyx_v_mse_var = (__pyx_v_m_ptr[1]); __pyx_v_ss_min = __pyx_v_ii; __pyx_v_fs_min = __pyx_v_jj; /* … */ __pyx_v_mse_min = (__pyx_v_m_ptr[0]); __pyx_v_mse_var = (__pyx_v_m_ptr[1]); __pyx_v_ss_min = __pyx_v_ii; __pyx_v_fs_min = __pyx_v_jj;
+599: if m_ptr[0] > mse_max:
__pyx_t_11 = (((__pyx_v_m_ptr[0]) > __pyx_v_mse_max) != 0); if (__pyx_t_11) { /* … */ } } } /* … */ __pyx_t_11 = (((__pyx_v_m_ptr[0]) > __pyx_v_mse_max) != 0); if (__pyx_t_11) { /* … */ } } }
+600: mse_max = m_ptr[0]; ss_max = ii; fs_max = jj
__pyx_v_mse_max = (__pyx_v_m_ptr[0]); __pyx_v_ss_max = __pyx_v_ii; __pyx_v_fs_max = __pyx_v_jj; /* … */ __pyx_v_mse_max = (__pyx_v_m_ptr[0]); __pyx_v_ss_max = __pyx_v_ii; __pyx_v_fs_max = __pyx_v_jj;
+601: dij[0] += ss_min; dij[1] += fs_min
__pyx_t_10 = 0; *((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_10)) )) += __pyx_v_ss_min; __pyx_t_10 = 1; *((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_10)) )) += __pyx_v_fs_min; /* … */ __pyx_t_10 = 0; *((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_10)) )) += __pyx_v_ss_min; __pyx_t_10 = 1; *((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_10)) )) += __pyx_v_fs_min;
+602: l1 = 2 * (mse_max - mse_min) / ((ss_max - ss_min)**2 + (fs_max - fs_min)**2)
__pyx_v_l1 = ((2.0 * (__pyx_v_mse_max - __pyx_v_mse_min)) / ((__pyx_t_5numpy_float64_t)(__Pyx_pow_long(((long)(__pyx_v_ss_max - __pyx_v_ss_min)), 2) + __Pyx_pow_long(((long)(__pyx_v_fs_max - __pyx_v_fs_min)), 2)))); /* … */ __pyx_v_l1 = ((2.0 * (__pyx_v_mse_max - __pyx_v_mse_min)) / ((__pyx_t_5numpy_float32_t)(__Pyx_pow_long(((long)(__pyx_v_ss_max - __pyx_v_ss_min)), 2) + __Pyx_pow_long(((long)(__pyx_v_fs_max - __pyx_v_fs_min)), 2))));
+603: mu = (3 * mse_var**0.5 / l1)**0.33
__pyx_v_mu = pow(((3.0 * pow(__pyx_v_mse_var, ((__pyx_t_5numpy_float64_t)0.5))) / __pyx_v_l1), ((__pyx_t_5numpy_float64_t)0.33)); /* … */ __pyx_v_mu = pow(((3.0 * pow(((double)__pyx_v_mse_var), 0.5)) / ((double)__pyx_v_l1)), 0.33);
+604: mu = mu if mu > 2 else 2
if (((__pyx_v_mu > 2.0) != 0)) { __pyx_t_12 = __pyx_v_mu; } else { __pyx_t_12 = 2.0; } __pyx_v_mu = __pyx_t_12; /* … */ if (((__pyx_v_mu > 2.0) != 0)) { __pyx_t_12 = __pyx_v_mu; } else { __pyx_t_12 = 2.0; } __pyx_v_mu = __pyx_t_12;
+605: if sw_ss:
__pyx_t_11 = (__pyx_v_sw_ss != 0); if (__pyx_t_11) { /* … */ goto __pyx_L9; } /* … */ __pyx_t_11 = (__pyx_v_sw_ss != 0); if (__pyx_t_11) { /* … */ goto __pyx_L9; }
+606: mse_diff_bi(m_ptr, SS_m, I, rss, I0, u, dij[0], dij[1], dij[0] - mu / 2, dij[1] - mu / 2)
__pyx_t_10 = 0; __pyx_t_9 = 1; __pyx_t_8 = 0; __pyx_t_7 = 1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_diff_bi(__pyx_v_m_ptr, __pyx_v_SS_m, __pyx_v_I, __pyx_v_rss, __pyx_v_I0, __pyx_v_u, (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_10)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_9)) ))), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_8)) ))) - (__pyx_v_mu / 2.0)), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_7)) ))) - (__pyx_v_mu / 2.0))); /* … */ __pyx_t_10 = 0; __pyx_t_9 = 1; __pyx_t_8 = 0; __pyx_t_7 = 1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_diff_bi(__pyx_v_m_ptr, __pyx_v_SS_m, __pyx_v_I, __pyx_v_rss, __pyx_v_I0, __pyx_v_u, (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_10)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_9)) ))), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_8)) ))) - (__pyx_v_mu / 2.0)), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_7)) ))) - (__pyx_v_mu / 2.0)));
+607: mse_m[0] = m_ptr[0]
(__pyx_v_mse_m[0]) = (__pyx_v_m_ptr[0]); /* … */ (__pyx_v_mse_m[0]) = (__pyx_v_m_ptr[0]);
+608: mse_diff_bi(m_ptr, SS_m, I, rss, I0, u, dij[0], dij[1], dij[0] - mu / 2, dij[1])
__pyx_t_7 = 0; __pyx_t_8 = 1; __pyx_t_9 = 0; __pyx_t_10 = 1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_diff_bi(__pyx_v_m_ptr, __pyx_v_SS_m, __pyx_v_I, __pyx_v_rss, __pyx_v_I0, __pyx_v_u, (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_7)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_8)) ))), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_9)) ))) - (__pyx_v_mu / 2.0)), (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_10)) )))); /* … */ __pyx_t_7 = 0; __pyx_t_8 = 1; __pyx_t_9 = 0; __pyx_t_10 = 1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_diff_bi(__pyx_v_m_ptr, __pyx_v_SS_m, __pyx_v_I, __pyx_v_rss, __pyx_v_I0, __pyx_v_u, (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_7)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_8)) ))), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_9)) ))) - (__pyx_v_mu / 2.0)), (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_10)) ))));
+609: mse_m[1] = m_ptr[0]
(__pyx_v_mse_m[1]) = (__pyx_v_m_ptr[0]); /* … */ (__pyx_v_mse_m[1]) = (__pyx_v_m_ptr[0]);
+610: mse_diff_bi(m_ptr, SS_m, I, rss, I0, u, dij[0], dij[1], dij[0], dij[1] - mu / 2)
__pyx_t_10 = 0; __pyx_t_9 = 1; __pyx_t_8 = 0; __pyx_t_7 = 1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_diff_bi(__pyx_v_m_ptr, __pyx_v_SS_m, __pyx_v_I, __pyx_v_rss, __pyx_v_I0, __pyx_v_u, (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_10)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_9)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_8)) ))), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_7)) ))) - (__pyx_v_mu / 2.0))); /* … */ __pyx_t_10 = 0; __pyx_t_9 = 1; __pyx_t_8 = 0; __pyx_t_7 = 1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_diff_bi(__pyx_v_m_ptr, __pyx_v_SS_m, __pyx_v_I, __pyx_v_rss, __pyx_v_I0, __pyx_v_u, (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_10)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_9)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_8)) ))), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_7)) ))) - (__pyx_v_mu / 2.0)));
+611: mse_m[2] = m_ptr[0]
(__pyx_v_mse_m[2]) = (__pyx_v_m_ptr[0]); /* … */ (__pyx_v_mse_m[2]) = (__pyx_v_m_ptr[0]);
+612: mse_m[3] = mse_min
(__pyx_v_mse_m[3]) = __pyx_v_mse_min; /* … */ (__pyx_v_mse_m[3]) = __pyx_v_mse_min;
+613: mse_diff_bi(m_ptr, SS_m, I, rss, I0, u, dij[0], dij[1], dij[0], dij[1] + mu / 2)
__pyx_t_7 = 0; __pyx_t_8 = 1; __pyx_t_9 = 0; __pyx_t_10 = 1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_diff_bi(__pyx_v_m_ptr, __pyx_v_SS_m, __pyx_v_I, __pyx_v_rss, __pyx_v_I0, __pyx_v_u, (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_7)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_8)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_9)) ))), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_10)) ))) + (__pyx_v_mu / 2.0))); /* … */ __pyx_t_7 = 0; __pyx_t_8 = 1; __pyx_t_9 = 0; __pyx_t_10 = 1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_diff_bi(__pyx_v_m_ptr, __pyx_v_SS_m, __pyx_v_I, __pyx_v_rss, __pyx_v_I0, __pyx_v_u, (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_7)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_8)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_9)) ))), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_10)) ))) + (__pyx_v_mu / 2.0)));
+614: mse_m[4] = m_ptr[0]
(__pyx_v_mse_m[4]) = (__pyx_v_m_ptr[0]); /* … */ (__pyx_v_mse_m[4]) = (__pyx_v_m_ptr[0]);
+615: mse_diff_bi(m_ptr, SS_m, I, rss, I0, u, dij[0], dij[1], dij[0] + mu / 2, dij[1])
__pyx_t_10 = 0; __pyx_t_9 = 1; __pyx_t_8 = 0; __pyx_t_7 = 1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_diff_bi(__pyx_v_m_ptr, __pyx_v_SS_m, __pyx_v_I, __pyx_v_rss, __pyx_v_I0, __pyx_v_u, (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_10)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_9)) ))), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_8)) ))) + (__pyx_v_mu / 2.0)), (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_7)) )))); /* … */ __pyx_t_10 = 0; __pyx_t_9 = 1; __pyx_t_8 = 0; __pyx_t_7 = 1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_diff_bi(__pyx_v_m_ptr, __pyx_v_SS_m, __pyx_v_I, __pyx_v_rss, __pyx_v_I0, __pyx_v_u, (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_10)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_9)) ))), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_8)) ))) + (__pyx_v_mu / 2.0)), (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_7)) ))));
+616: mse_m[5] = m_ptr[0]
(__pyx_v_mse_m[5]) = (__pyx_v_m_ptr[0]); /* … */ (__pyx_v_mse_m[5]) = (__pyx_v_m_ptr[0]);
+617: mse_diff_bi(m_ptr, SS_m, I, rss, I0, u, dij[0], dij[1], dij[0] + mu / 2, dij[1] + mu / 2)
__pyx_t_7 = 0; __pyx_t_8 = 1; __pyx_t_9 = 0; __pyx_t_10 = 1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_diff_bi(__pyx_v_m_ptr, __pyx_v_SS_m, __pyx_v_I, __pyx_v_rss, __pyx_v_I0, __pyx_v_u, (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_7)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_8)) ))), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_9)) ))) + (__pyx_v_mu / 2.0)), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_10)) ))) + (__pyx_v_mu / 2.0))); /* … */ __pyx_t_7 = 0; __pyx_t_8 = 1; __pyx_t_9 = 0; __pyx_t_10 = 1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_diff_bi(__pyx_v_m_ptr, __pyx_v_SS_m, __pyx_v_I, __pyx_v_rss, __pyx_v_I0, __pyx_v_u, (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_7)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_8)) ))), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_9)) ))) + (__pyx_v_mu / 2.0)), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_10)) ))) + (__pyx_v_mu / 2.0)));
+618: mse_m[6] = m_ptr[0]
(__pyx_v_mse_m[6]) = (__pyx_v_m_ptr[0]); /* … */ (__pyx_v_mse_m[6]) = (__pyx_v_m_ptr[0]);
+619: subpixel_ref_2d(dij, mse_m, mu)
__pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_subpixel_ref_2d(__pyx_v_dij, __pyx_v_mse_m, __pyx_v_mu); /* … */ __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_subpixel_ref_2d(__pyx_v_dij, __pyx_v_mse_m, __pyx_v_mu);
620: else:
+621: mse_diff_bi(m_ptr, SS_m, I, rss, I0, u, dij[0], dij[1], dij[0], dij[1] - mu / 2)
/*else*/ { __pyx_t_10 = 0; __pyx_t_9 = 1; __pyx_t_8 = 0; __pyx_t_7 = 1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_diff_bi(__pyx_v_m_ptr, __pyx_v_SS_m, __pyx_v_I, __pyx_v_rss, __pyx_v_I0, __pyx_v_u, (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_10)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_9)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_8)) ))), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_7)) ))) - (__pyx_v_mu / 2.0))); /* … */ /*else*/ { __pyx_t_10 = 0; __pyx_t_9 = 1; __pyx_t_8 = 0; __pyx_t_7 = 1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_diff_bi(__pyx_v_m_ptr, __pyx_v_SS_m, __pyx_v_I, __pyx_v_rss, __pyx_v_I0, __pyx_v_u, (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_10)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_9)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_8)) ))), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_7)) ))) - (__pyx_v_mu / 2.0)));
+622: mse_m[0] = m_ptr[0]
(__pyx_v_mse_m[0]) = (__pyx_v_m_ptr[0]); /* … */ (__pyx_v_mse_m[0]) = (__pyx_v_m_ptr[0]);
+623: mse_m[1] = mse_min
(__pyx_v_mse_m[1]) = __pyx_v_mse_min; /* … */ (__pyx_v_mse_m[1]) = __pyx_v_mse_min;
+624: mse_diff_bi(m_ptr, SS_m, I, rss, I0, u, dij[0], dij[1], dij[0], dij[1] + mu / 2)
__pyx_t_7 = 0; __pyx_t_8 = 1; __pyx_t_9 = 0; __pyx_t_10 = 1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_diff_bi(__pyx_v_m_ptr, __pyx_v_SS_m, __pyx_v_I, __pyx_v_rss, __pyx_v_I0, __pyx_v_u, (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_7)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_8)) ))), (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_9)) ))), ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dij.data) + __pyx_t_10)) ))) + (__pyx_v_mu / 2.0))); /* … */ __pyx_t_7 = 0; __pyx_t_8 = 1; __pyx_t_9 = 0; __pyx_t_10 = 1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_diff_bi(__pyx_v_m_ptr, __pyx_v_SS_m, __pyx_v_I, __pyx_v_rss, __pyx_v_I0, __pyx_v_u, (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_7)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_8)) ))), (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_9)) ))), ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dij.data) + __pyx_t_10)) ))) + (__pyx_v_mu / 2.0)));
+625: mse_m[2] = m_ptr[0]
(__pyx_v_mse_m[2]) = (__pyx_v_m_ptr[0]); /* … */ (__pyx_v_mse_m[2]) = (__pyx_v_m_ptr[0]);
+626: subpixel_ref_1d(dij, mse_m, mu)
__pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_subpixel_ref_1d(__pyx_v_dij, __pyx_v_mse_m, __pyx_v_mu); } __pyx_L9:; /* … */ __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_subpixel_ref_1d(__pyx_v_dij, __pyx_v_mse_m, __pyx_v_mu); } __pyx_L9:;
627:
+628: def update_translations_gs(float_t[:, :, ::1] I_n, float_t[:, ::1] W, float_t[:, ::1] I0,
/* Python wrapper */ static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_7update_translations_gs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_6pyrost_3bin_6pyrost_6update_translations_gs[] = "update_translations_gs(signatures, args, kwargs, defaults)\nUpdate 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_ss` size in pixels for sample translations along the slow axis, and\n of `sw_fs` size in pixels for sample translations along the fast axis in\n order to minimize the total MSE.\n\n Parameters\n ----------\n I_n : numpy.ndarray\n Measured intensity frames.\n W : numpy.ndarray\n Measured frames' whitefield.\n I0 : numpy.ndarray\n Reference image of the sample.\n u : numpy.ndarray\n The pixel mapping between the data at\n the detector plane and the reference image at\n the reference plane.\n di : numpy.ndarray\n Initial sample's translations along the slow detector\n axis in pixels.\n dj : numpy.ndarray\n Initial sample's translations along the fast detector\n axis in pixels.\n sw_ss : int\n Search window size in pixels along the slow detector\n axis.\n sw_fs : int\n Search window size in pixels along the fast detector\n axis.\n ls : float\n Reference image length scale in pixels.\n num_threads : int, optional\n Number of threads.\n\n Returns\n -------\n dij : numpy.ndarray\n Updated sample pixel translations.\n\n Notes\n -----\n The following error metric is being minimized:\n\n .. math::\n\n MSE_{total} = \\frac{1}{N M}\\sum_{i, j} \\left( \\frac{\\sum_{n}\n \\left( I_g[n] - I_{ref}[ii_n, jj_n] \\right)^2}{\\sum_{n}\n \\left(I_g[n] - 1 \\right)^2} \\right)\n \n Where :math:`I_g[n]` is a kriged intensity profile of the\n particular detector coordinate :math:`I_n[n, i, j]`. Intensity\n profile :math:`I_n[n, i, j]` is kriged with gaussian radial\n basis function :math:`\\phi`:\n\n .. math::\n I_g[n] = \\frac{\\sum_{\\Delta i, ""\\Delta j} I_n[n, i + \\Delta i,\n j + \\Delta j] W[i + \\Delta i, j + \\Delta j] \n \\phi[\\Delta u[0], \\Delta u[1]]}\n {\\sum_{\\Delta i, \\Delta j} W[i + \\Delta i, j + \\Delta j]^2\n \\phi[\\Delta u[0], \\Delta u[1]]}\n \n .. math::\n \\Delta u[0] = u[0, i + \\Delta i, j + \\Delta j] - u[0, i, j]\n \n .. math::\n \\Delta u[1] = u[1, i + \\Delta i, j + \\Delta j] - u[1, i, j]\n\n .. math::\n \\phi [\\Delta ii_{ref}, \\Delta jj_{ref}] = \n \\exp\\left[{-\\frac{(\\Delta ii_{ref})^2 + \n (\\Delta jj_{ref})^2}{ls^2}}\\right]\n "; static PyMethodDef __pyx_mdef_6pyrost_3bin_6pyrost_7update_translations_gs = {"update_translations_gs", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pyrost_3bin_6pyrost_7update_translations_gs, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_6update_translations_gs}; static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_7update_translations_gs(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, 628, __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, 628, __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, 628, __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, 628, __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, 628, __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_6update_translations_gs(__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_6update_translations_gs(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("update_translations_gs", 0); __Pyx_INCREF(__pyx_v_kwargs); __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 628, __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, 628, __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, 628, __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, 628, __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, 628, __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, 628, __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, 628, __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, 628, __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, 628, __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, 628, __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, 628, __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, 628, __pyx_L1_error) __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 628, __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, 628, __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, 628, __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, 628, __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, 628, __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, 628, __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, 628, __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, 628, __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, 628, __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, 628, __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, 628, __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, 628, __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, 628, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 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, 628, __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, 628, __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, 628, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 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, 628, __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_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, 628, __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_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, 628, __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, 628, __pyx_L1_error) goto __pyx_L10_break; } __pyx_L10_break:; __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 628, __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, 628, __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, 628, __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, 628, __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, 628, __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_) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s_); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 628, __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, 628, __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__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 628, __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, 628, __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, 628, __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, 628, __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, 628, __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, 628, __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__3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 628, __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, 628, __pyx_L1_error) } __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 628, __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__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 628, __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, 628, __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, 628, __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, 628, __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_84__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_defaults14, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 628, __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, 628, __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__pyx_pw_6pyrost_3bin_6pyrost_33update_translations_gs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_0__pyx_mdef_6pyrost_3bin_6pyrost_33update_translations_gs = {"__pyx_fuse_0update_translations_gs", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0__pyx_pw_6pyrost_3bin_6pyrost_33update_translations_gs, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_6update_translations_gs}; static PyObject *__pyx_fuse_0__pyx_pw_6pyrost_3bin_6pyrost_33update_translations_gs(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 } }; int __pyx_v_sw_ss; int __pyx_v_sw_fs; __pyx_t_5numpy_float64_t __pyx_v_ls; unsigned int __pyx_v_num_threads; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("update_translations_gs (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_ss,&__pyx_n_s_sw_fs,&__pyx_n_s_ls,&__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("update_translations_gs", 0, 9, 10, 1); __PYX_ERR(0, 628, __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("update_translations_gs", 0, 9, 10, 2); __PYX_ERR(0, 628, __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("update_translations_gs", 0, 9, 10, 3); __PYX_ERR(0, 628, __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("update_translations_gs", 0, 9, 10, 4); __PYX_ERR(0, 628, __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("update_translations_gs", 0, 9, 10, 5); __PYX_ERR(0, 628, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_ss)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("update_translations_gs", 0, 9, 10, 6); __PYX_ERR(0, 628, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 7: if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_fs)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("update_translations_gs", 0, 9, 10, 7); __PYX_ERR(0, 628, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 8: if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ls)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("update_translations_gs", 0, 9, 10, 8); __PYX_ERR(0, 628, __pyx_L3_error) } 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, "update_translations_gs") < 0)) __PYX_ERR(0, 628, __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); 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_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 628, __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, 628, __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, 628, __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, 629, __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, 629, __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, 629, __pyx_L3_error) __pyx_v_sw_ss = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_sw_ss == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 630, __pyx_L3_error) __pyx_v_sw_fs = __Pyx_PyInt_As_int(values[7]); if (unlikely((__pyx_v_sw_fs == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 630, __pyx_L3_error) __pyx_v_ls = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_ls == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 630, __pyx_L3_error) 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, 630, __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("update_translations_gs", 0, 9, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 628, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyrost.bin.pyrost.update_translations_gs", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_32update_translations_gs(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_ss, __pyx_v_sw_fs, __pyx_v_ls, __pyx_v_num_threads); 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_32update_translations_gs(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, int __pyx_v_sw_ss, int __pyx_v_sw_fs, __pyx_t_5numpy_float64_t __pyx_v_ls, unsigned int __pyx_v_num_threads) { PyObject *__pyx_v_dtype = 0; npy_intp __pyx_v_a; npy_intp __pyx_v_b; npy_intp __pyx_v_c; int __pyx_v_i; int __pyx_v_j; int __pyx_v_k; int __pyx_v_t; __Pyx_memviewslice __pyx_v_I = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_I_buf = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_SS_m = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_dij = { 0, 0, { 0 }, { 0 }, { 0 } }; __pyx_t_5numpy_float64_t __pyx_v_m_ptr[3]; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_0update_translations_gs", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_7, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_14, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_24, 1); __Pyx_AddTraceback("pyrost.bin.pyrost.update_translations_gs", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_dtype); __PYX_XDEC_MEMVIEW(&__pyx_v_I, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_I_buf, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_SS_m, 1); __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(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6pyrost_3bin_6pyrost_86__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_defaults15, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 628, __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, 628, __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__pyx_pw_6pyrost_3bin_6pyrost_35update_translations_gs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_1__pyx_mdef_6pyrost_3bin_6pyrost_35update_translations_gs = {"__pyx_fuse_1update_translations_gs", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1__pyx_pw_6pyrost_3bin_6pyrost_35update_translations_gs, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_6update_translations_gs}; static PyObject *__pyx_fuse_1__pyx_pw_6pyrost_3bin_6pyrost_35update_translations_gs(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 } }; int __pyx_v_sw_ss; int __pyx_v_sw_fs; __pyx_t_5numpy_float32_t __pyx_v_ls; unsigned int __pyx_v_num_threads; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("update_translations_gs (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_ss,&__pyx_n_s_sw_fs,&__pyx_n_s_ls,&__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("update_translations_gs", 0, 9, 10, 1); __PYX_ERR(0, 628, __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("update_translations_gs", 0, 9, 10, 2); __PYX_ERR(0, 628, __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("update_translations_gs", 0, 9, 10, 3); __PYX_ERR(0, 628, __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("update_translations_gs", 0, 9, 10, 4); __PYX_ERR(0, 628, __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("update_translations_gs", 0, 9, 10, 5); __PYX_ERR(0, 628, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_ss)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("update_translations_gs", 0, 9, 10, 6); __PYX_ERR(0, 628, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 7: if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sw_fs)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("update_translations_gs", 0, 9, 10, 7); __PYX_ERR(0, 628, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 8: if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ls)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("update_translations_gs", 0, 9, 10, 8); __PYX_ERR(0, 628, __pyx_L3_error) } 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, "update_translations_gs") < 0)) __PYX_ERR(0, 628, __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); 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_float32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 628, __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, 628, __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, 628, __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, 629, __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, 629, __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, 629, __pyx_L3_error) __pyx_v_sw_ss = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_sw_ss == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 630, __pyx_L3_error) __pyx_v_sw_fs = __Pyx_PyInt_As_int(values[7]); if (unlikely((__pyx_v_sw_fs == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 630, __pyx_L3_error) __pyx_v_ls = __pyx_PyFloat_AsFloat(values[8]); if (unlikely((__pyx_v_ls == ((npy_float32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 630, __pyx_L3_error) 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, 630, __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("update_translations_gs", 0, 9, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 628, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyrost.bin.pyrost.update_translations_gs", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_34update_translations_gs(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_sw_ss, __pyx_v_sw_fs, __pyx_v_ls, __pyx_v_num_threads); 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_34update_translations_gs(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, int __pyx_v_sw_ss, int __pyx_v_sw_fs, __pyx_t_5numpy_float32_t __pyx_v_ls, unsigned int __pyx_v_num_threads) { PyObject *__pyx_v_dtype = 0; npy_intp __pyx_v_a; npy_intp __pyx_v_b; npy_intp __pyx_v_c; int __pyx_v_i; int __pyx_v_j; int __pyx_v_k; int __pyx_v_t; __Pyx_memviewslice __pyx_v_I = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_I_buf = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_SS_m = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_dij = { 0, 0, { 0 }, { 0 }, { 0 } }; __pyx_t_5numpy_float32_t __pyx_v_m_ptr[3]; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_1update_translations_gs", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_7, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_14, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_24, 1); __Pyx_AddTraceback("pyrost.bin.pyrost.update_translations_gs", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_dtype); __PYX_XDEC_MEMVIEW(&__pyx_v_I, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_I_buf, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_SS_m, 1); __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(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_tuple__31 = PyTuple_Pack(23, __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_ss, __pyx_n_s_sw_fs, __pyx_n_s_ls, __pyx_n_s_num_threads, __pyx_n_s_dtype, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_c, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_k, __pyx_n_s_t, __pyx_n_s_I, __pyx_n_s_I_buf, __pyx_n_s_SS_m, __pyx_n_s_dij, __pyx_n_s_m_ptr); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 628, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__31); __Pyx_GIVEREF(__pyx_tuple__31); __pyx_t_4 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_6pyrost_3bin_6pyrost_33update_translations_gs, 0, __pyx_n_s_update_translations_gs, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__32)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults14), 0)) __PYX_ERR(0, 628, __pyx_L1_error) __Pyx_CyFunction_Defaults(__pyx_defaults14, __pyx_t_3)->__pyx_arg_num_threads = 1; __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_2); __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pyrost_3bin_6pyrost_84__defaults__); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_float64_t, __pyx_t_3) < 0) __PYX_ERR(0, 628, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_6pyrost_3bin_6pyrost_35update_translations_gs, 0, __pyx_n_s_update_translations_gs, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__32)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults15), 0)) __PYX_ERR(0, 628, __pyx_L1_error) __Pyx_CyFunction_Defaults(__pyx_defaults15, __pyx_t_3)->__pyx_arg_num_threads = 1; __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_2); __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pyrost_3bin_6pyrost_86__defaults__); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_float32_t, __pyx_t_3) < 0) __PYX_ERR(0, 628, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_6pyrost_3bin_6pyrost_7update_translations_gs, 0, __pyx_n_s_update_translations_gs, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__32)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_2); ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_4; __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_update_translations_gs, __pyx_t_3) < 0) __PYX_ERR(0, 628, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_codeobj__32 = (PyObject*)__Pyx_PyCode_New(10, 0, 23, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__31, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pyrost_bin_pyrost_pyx, __pyx_n_s_update_translations_gs, 628, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__32)) __PYX_ERR(0, 628, __pyx_L1_error)
629: float_t[:, :, ::1] u, float_t[::1] di, float_t[::1] dj,
+630: int sw_ss, int sw_fs, float_t ls, unsigned num_threads=1):
__pyx_t_4 = __Pyx_PyInt_From_long(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
631: r"""Update the sample pixel translations by minimizing total mean-squared-error
632: (:math:$MSE_{total}$). Perform a grid search within the search window of
633: `sw_ss` size in pixels for sample translations along the slow axis, and
634: of `sw_fs` size in pixels for sample translations along the fast axis in
635: order to minimize the total MSE.
636:
637: Parameters
638: ----------
639: I_n : numpy.ndarray
640: Measured intensity frames.
641: W : numpy.ndarray
642: Measured frames' whitefield.
643: I0 : numpy.ndarray
644: Reference image of the sample.
645: u : numpy.ndarray
646: The pixel mapping between the data at
647: the detector plane and the reference image at
648: the reference plane.
649: di : numpy.ndarray
650: Initial sample's translations along the slow detector
651: axis in pixels.
652: dj : numpy.ndarray
653: Initial sample's translations along the fast detector
654: axis in pixels.
655: sw_ss : int
656: Search window size in pixels along the slow detector
657: axis.
658: sw_fs : int
659: Search window size in pixels along the fast detector
660: axis.
661: ls : float
662: Reference image length scale in pixels.
663: num_threads : int, optional
664: Number of threads.
665:
666: Returns
667: -------
668: dij : numpy.ndarray
669: Updated sample pixel translations.
670:
671: Notes
672: -----
673: The following error metric is being minimized:
674:
675: .. math::
676:
677: MSE_{total} = \frac{1}{N M}\sum_{i, j} \left( \frac{\sum_{n}
678: \left( I_g[n] - I_{ref}[ii_n, jj_n] \right)^2}{\sum_{n}
679: \left(I_g[n] - 1 \right)^2} \right)
680:
681: Where :math:`I_g[n]` is a kriged intensity profile of the
682: particular detector coordinate :math:`I_n[n, i, j]`. Intensity
683: profile :math:`I_n[n, i, j]` is kriged with gaussian radial
684: basis function :math:`\phi`:
685:
686: .. math::
687: I_g[n] = \frac{\sum_{\Delta i, \Delta j} I_n[n, i + \Delta i,
688: j + \Delta j] W[i + \Delta i, j + \Delta j]
689: \phi[\Delta u[0], \Delta u[1]]}
690: {\sum_{\Delta i, \Delta j} W[i + \Delta i, j + \Delta j]^2
691: \phi[\Delta u[0], \Delta u[1]]}
692:
693: .. math::
694: \Delta u[0] = u[0, i + \Delta i, j + \Delta j] - u[0, i, j]
695:
696: .. math::
697: \Delta u[1] = u[1, i + \Delta i, j + \Delta j] - u[1, i, j]
698:
699: .. math::
700: \phi [\Delta ii_{ref}, \Delta jj_{ref}] =
701: \exp\left[{-\frac{(\Delta ii_{ref})^2 +
702: (\Delta jj_{ref})^2}{ls^2}}\right]
703: """
704: cdef:
+705: str dtype = 'float64' if float_t is np.float64_t else 'float32'
if ((1 != 0)) { __Pyx_INCREF(__pyx_n_u_float64); __pyx_t_1 = __pyx_n_u_float64; } else { __Pyx_INCREF(__pyx_n_u_float32); __pyx_t_1 = __pyx_n_u_float32; } __pyx_v_dtype = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* … */ if ((0 != 0)) { __Pyx_INCREF(__pyx_n_u_float64); __pyx_t_1 = __pyx_n_u_float64; } else { __Pyx_INCREF(__pyx_n_u_float32); __pyx_t_1 = __pyx_n_u_float32; } __pyx_v_dtype = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+706: np.npy_intp a = I_n.shape[0], b = I_n.shape[1], c = I_n.shape[2]
__pyx_v_a = (__pyx_v_I_n.shape[0]); __pyx_v_b = (__pyx_v_I_n.shape[1]); __pyx_v_c = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_a = (__pyx_v_I_n.shape[0]); __pyx_v_b = (__pyx_v_I_n.shape[1]); __pyx_v_c = (__pyx_v_I_n.shape[2]);
707: int i, j, k, t
+708: float_t[:, :, ::1] I = np.empty((a + 1, b, c), dtype=dtype)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_long((__pyx_v_a + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyInt_From_Py_intptr_t(__pyx_v_b); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyInt_From_Py_intptr_t(__pyx_v_c); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 708, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_I = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_long((__pyx_v_a + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyInt_From_Py_intptr_t(__pyx_v_b); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyInt_From_Py_intptr_t(__pyx_v_c); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 708, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_I = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL;
+709: float_t[:, ::1] I_buf = np.empty((num_threads, a + 1), dtype=dtype)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__pyx_v_num_threads); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyInt_From_long((__pyx_v_a + 1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 709, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 709, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_I_buf = __pyx_t_7; __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL; /* … */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__pyx_v_num_threads); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyInt_From_long((__pyx_v_a + 1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 709, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 709, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_I_buf = __pyx_t_7; __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL;
+710: float_t[:, :, ::1] SS_m = np.empty((3, b, c), dtype=dtype)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_Py_intptr_t(__pyx_v_b); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyInt_From_Py_intptr_t(__pyx_v_c); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 710, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 710, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_SS_m = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_Py_intptr_t(__pyx_v_b); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyInt_From_Py_intptr_t(__pyx_v_c); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 710, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 710, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_SS_m = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL;
+711: float_t[:, ::1] dij = np.empty((a, 2), dtype=dtype)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_Py_intptr_t(__pyx_v_a); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_2); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 711, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 711, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_dij = __pyx_t_7; __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL; /* … */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_Py_intptr_t(__pyx_v_a); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_2); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 711, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 711, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_dij = __pyx_t_7; __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL;
712: float_t m_ptr[3]
+713: m_ptr[2] = NO_VAR
(__pyx_v_m_ptr[2]) = -1.0; /* … */ (__pyx_v_m_ptr[2]) = -1.0;
+714: for k in prange(c, 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_c; 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_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_8 = __pyx_v_c; 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_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) lastprivate(__pyx_v_t) 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_i = ((int)0xbad0bad0); __pyx_v_j = ((int)0xbad0bad0); __pyx_v_t = ((int)0xbad0bad0); /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } } /* … */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { __pyx_t_8 = __pyx_v_c; 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_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) lastprivate(__pyx_v_t) schedule(guided) __pyx_t_8 = __pyx_v_c; 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_i) lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) lastprivate(__pyx_v_t) 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_i = ((int)0xbad0bad0); __pyx_v_j = ((int)0xbad0bad0); __pyx_v_t = ((int)0xbad0bad0); /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+715: t = openmp.omp_get_thread_num()
__pyx_v_t = omp_get_thread_num(); /* … */ __pyx_v_t = omp_get_thread_num();
+716: for j in range(b):
__pyx_t_11 = __pyx_v_b; __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_b; __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;
+717: krig_data_c(I_buf[t], I_n, W, u, j, k, ls)
__pyx_t_14.data = __pyx_v_I_buf.data; __pyx_t_14.memview = __pyx_v_I_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_I_buf.strides[0]; __pyx_t_14.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_14.shape[0] = __pyx_v_I_buf.shape[1]; __pyx_t_14.strides[0] = __pyx_v_I_buf.strides[1]; __pyx_t_14.suboffsets[0] = -1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_krig_data_c(__pyx_t_14, __pyx_v_I_n, __pyx_v_W, __pyx_v_u, __pyx_v_j, __pyx_v_k, __pyx_v_ls); __PYX_XDEC_MEMVIEW(&__pyx_t_14, 0); __pyx_t_14.memview = NULL; __pyx_t_14.data = NULL; /* … */ __pyx_t_14.data = __pyx_v_I_buf.data; __pyx_t_14.memview = __pyx_v_I_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_I_buf.strides[0]; __pyx_t_14.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_14.shape[0] = __pyx_v_I_buf.shape[1]; __pyx_t_14.strides[0] = __pyx_v_I_buf.strides[1]; __pyx_t_14.suboffsets[0] = -1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_krig_data_c(__pyx_t_14, __pyx_v_I_n, __pyx_v_W, __pyx_v_u, __pyx_v_j, __pyx_v_k, __pyx_v_ls); __PYX_XDEC_MEMVIEW(&__pyx_t_14, 0); __pyx_t_14.memview = NULL; __pyx_t_14.data = NULL;
+718: mse_bi(m_ptr, I_buf[t], I0, di, dj, u[0, j, k], u[1, j, k])
__pyx_t_14.data = __pyx_v_I_buf.data; __pyx_t_14.memview = __pyx_v_I_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_I_buf.strides[0]; __pyx_t_14.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_14.shape[0] = __pyx_v_I_buf.shape[1]; __pyx_t_14.strides[0] = __pyx_v_I_buf.strides[1]; __pyx_t_14.suboffsets[0] = -1; __pyx_t_15 = 0; __pyx_t_16 = __pyx_v_j; __pyx_t_17 = __pyx_v_k; __pyx_t_18 = 1; __pyx_t_19 = __pyx_v_j; __pyx_t_20 = __pyx_v_k; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_m_ptr, __pyx_t_14, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, (*((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_15 * __pyx_v_u.strides[0]) ) + __pyx_t_16 * __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_u.data + __pyx_t_18 * __pyx_v_u.strides[0]) ) + __pyx_t_19 * __pyx_v_u.strides[1]) )) + __pyx_t_20)) )))); __PYX_XDEC_MEMVIEW(&__pyx_t_14, 0); __pyx_t_14.memview = NULL; __pyx_t_14.data = NULL; /* … */ __pyx_t_14.data = __pyx_v_I_buf.data; __pyx_t_14.memview = __pyx_v_I_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_I_buf.strides[0]; __pyx_t_14.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_14.shape[0] = __pyx_v_I_buf.shape[1]; __pyx_t_14.strides[0] = __pyx_v_I_buf.strides[1]; __pyx_t_14.suboffsets[0] = -1; __pyx_t_15 = 0; __pyx_t_16 = __pyx_v_j; __pyx_t_17 = __pyx_v_k; __pyx_t_18 = 1; __pyx_t_19 = __pyx_v_j; __pyx_t_20 = __pyx_v_k; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_m_ptr, __pyx_t_14, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, (*((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_u.data + __pyx_t_15 * __pyx_v_u.strides[0]) ) + __pyx_t_16 * __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_u.data + __pyx_t_18 * __pyx_v_u.strides[0]) ) + __pyx_t_19 * __pyx_v_u.strides[1]) )) + __pyx_t_20)) )))); __PYX_XDEC_MEMVIEW(&__pyx_t_14, 0); __pyx_t_14.memview = NULL; __pyx_t_14.data = NULL;
+719: SS_m[0, j, k] = m_ptr[0]; SS_m[1, j, k] = m_ptr[1]
__pyx_t_20 = 0; __pyx_t_19 = __pyx_v_j; __pyx_t_18 = __pyx_v_k; *((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_SS_m.data + __pyx_t_20 * __pyx_v_SS_m.strides[0]) ) + __pyx_t_19 * __pyx_v_SS_m.strides[1]) )) + __pyx_t_18)) )) = (__pyx_v_m_ptr[0]); __pyx_t_18 = 1; __pyx_t_19 = __pyx_v_j; __pyx_t_20 = __pyx_v_k; *((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_SS_m.data + __pyx_t_18 * __pyx_v_SS_m.strides[0]) ) + __pyx_t_19 * __pyx_v_SS_m.strides[1]) )) + __pyx_t_20)) )) = (__pyx_v_m_ptr[1]); /* … */ __pyx_t_20 = 0; __pyx_t_19 = __pyx_v_j; __pyx_t_18 = __pyx_v_k; *((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_SS_m.data + __pyx_t_20 * __pyx_v_SS_m.strides[0]) ) + __pyx_t_19 * __pyx_v_SS_m.strides[1]) )) + __pyx_t_18)) )) = (__pyx_v_m_ptr[0]); __pyx_t_18 = 1; __pyx_t_19 = __pyx_v_j; __pyx_t_20 = __pyx_v_k; *((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_SS_m.data + __pyx_t_18 * __pyx_v_SS_m.strides[0]) ) + __pyx_t_19 * __pyx_v_SS_m.strides[1]) )) + __pyx_t_20)) )) = (__pyx_v_m_ptr[1]);
+720: for i in range(a + 1):
__pyx_t_21 = (__pyx_v_a + 1); __pyx_t_22 = __pyx_t_21; for (__pyx_t_23 = 0; __pyx_t_23 < __pyx_t_22; __pyx_t_23+=1) { __pyx_v_i = __pyx_t_23; /* … */ __pyx_t_21 = (__pyx_v_a + 1); __pyx_t_22 = __pyx_t_21; for (__pyx_t_23 = 0; __pyx_t_23 < __pyx_t_22; __pyx_t_23+=1) { __pyx_v_i = __pyx_t_23;
+721: I[i, j, k] = I_buf[t, i]
__pyx_t_20 = __pyx_v_t; __pyx_t_19 = __pyx_v_i; __pyx_t_18 = __pyx_v_i; __pyx_t_17 = __pyx_v_j; __pyx_t_16 = __pyx_v_k; *((__pyx_t_5numpy_float64_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I.data + __pyx_t_18 * __pyx_v_I.strides[0]) ) + __pyx_t_17 * __pyx_v_I.strides[1]) )) + __pyx_t_16)) )) = (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_I_buf.data + __pyx_t_20 * __pyx_v_I_buf.strides[0]) )) + __pyx_t_19)) ))); } } } } } } } #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_20 = __pyx_v_t; __pyx_t_19 = __pyx_v_i; __pyx_t_18 = __pyx_v_i; __pyx_t_17 = __pyx_v_j; __pyx_t_16 = __pyx_v_k; *((__pyx_t_5numpy_float32_t *) ( /* dim=2 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_I.data + __pyx_t_18 * __pyx_v_I.strides[0]) ) + __pyx_t_17 * __pyx_v_I.strides[1]) )) + __pyx_t_16)) )) = (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_I_buf.data + __pyx_t_20 * __pyx_v_I_buf.strides[0]) )) + __pyx_t_19)) ))); } } } } } } } #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 }
+722: for i in prange(a, 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_a; 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_a; 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_L18; } __pyx_L18:; } } /* … */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { __pyx_t_10 = __pyx_v_a; 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_a; 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_L18; } __pyx_L18:; } }
+723: dij[i, 0] = di[i]; dij[i, 1] = dj[i]
__pyx_t_19 = __pyx_v_i; __pyx_t_20 = __pyx_v_i; __pyx_t_16 = 0; *((__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_16)) )) = (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_di.data) + __pyx_t_19)) ))); __pyx_t_19 = __pyx_v_i; __pyx_t_16 = __pyx_v_i; __pyx_t_20 = 1; *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_dij.data + __pyx_t_16 * __pyx_v_dij.strides[0]) )) + __pyx_t_20)) )) = (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_dj.data) + __pyx_t_19)) ))); /* … */ __pyx_t_19 = __pyx_v_i; __pyx_t_20 = __pyx_v_i; __pyx_t_16 = 0; *((__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_16)) )) = (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_di.data) + __pyx_t_19)) ))); __pyx_t_19 = __pyx_v_i; __pyx_t_16 = __pyx_v_i; __pyx_t_20 = 1; *((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_dij.data + __pyx_t_16 * __pyx_v_dij.strides[0]) )) + __pyx_t_20)) )) = (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_dj.data) + __pyx_t_19)) )));
+724: update_t_c(SS_m, I[i], I[a], I0, u, dij[i], sw_ss, sw_fs)
__pyx_t_7.data = __pyx_v_I.data; __pyx_t_7.memview = __pyx_v_I.memview; __PYX_INC_MEMVIEW(&__pyx_t_7, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_i; Py_ssize_t __pyx_tmp_stride = __pyx_v_I.strides[0]; __pyx_t_7.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_7.shape[0] = __pyx_v_I.shape[1]; __pyx_t_7.strides[0] = __pyx_v_I.strides[1]; __pyx_t_7.suboffsets[0] = -1; __pyx_t_7.shape[1] = __pyx_v_I.shape[2]; __pyx_t_7.strides[1] = __pyx_v_I.strides[2]; __pyx_t_7.suboffsets[1] = -1; __pyx_t_24.data = __pyx_v_I.data; __pyx_t_24.memview = __pyx_v_I.memview; __PYX_INC_MEMVIEW(&__pyx_t_24, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_a; Py_ssize_t __pyx_tmp_stride = __pyx_v_I.strides[0]; __pyx_t_24.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_24.shape[0] = __pyx_v_I.shape[1]; __pyx_t_24.strides[0] = __pyx_v_I.strides[1]; __pyx_t_24.suboffsets[0] = -1; __pyx_t_24.shape[1] = __pyx_v_I.shape[2]; __pyx_t_24.strides[1] = __pyx_v_I.strides[2]; __pyx_t_24.suboffsets[1] = -1; __pyx_t_14.data = __pyx_v_dij.data; __pyx_t_14.memview = __pyx_v_dij.memview; __PYX_INC_MEMVIEW(&__pyx_t_14, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_i; Py_ssize_t __pyx_tmp_stride = __pyx_v_dij.strides[0]; __pyx_t_14.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_14.shape[0] = __pyx_v_dij.shape[1]; __pyx_t_14.strides[0] = __pyx_v_dij.strides[1]; __pyx_t_14.suboffsets[0] = -1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_update_t_c(__pyx_v_SS_m, __pyx_t_7, __pyx_t_24, __pyx_v_I0, __pyx_v_u, __pyx_t_14, __pyx_v_sw_ss, __pyx_v_sw_fs); __PYX_XDEC_MEMVIEW(&__pyx_t_7, 0); __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_24, 0); __pyx_t_24.memview = NULL; __pyx_t_24.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_14, 0); __pyx_t_14.memview = NULL; __pyx_t_14.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_7.data = __pyx_v_I.data; __pyx_t_7.memview = __pyx_v_I.memview; __PYX_INC_MEMVIEW(&__pyx_t_7, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_i; Py_ssize_t __pyx_tmp_stride = __pyx_v_I.strides[0]; __pyx_t_7.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_7.shape[0] = __pyx_v_I.shape[1]; __pyx_t_7.strides[0] = __pyx_v_I.strides[1]; __pyx_t_7.suboffsets[0] = -1; __pyx_t_7.shape[1] = __pyx_v_I.shape[2]; __pyx_t_7.strides[1] = __pyx_v_I.strides[2]; __pyx_t_7.suboffsets[1] = -1; __pyx_t_24.data = __pyx_v_I.data; __pyx_t_24.memview = __pyx_v_I.memview; __PYX_INC_MEMVIEW(&__pyx_t_24, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_a; Py_ssize_t __pyx_tmp_stride = __pyx_v_I.strides[0]; __pyx_t_24.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_24.shape[0] = __pyx_v_I.shape[1]; __pyx_t_24.strides[0] = __pyx_v_I.strides[1]; __pyx_t_24.suboffsets[0] = -1; __pyx_t_24.shape[1] = __pyx_v_I.shape[2]; __pyx_t_24.strides[1] = __pyx_v_I.strides[2]; __pyx_t_24.suboffsets[1] = -1; __pyx_t_14.data = __pyx_v_dij.data; __pyx_t_14.memview = __pyx_v_dij.memview; __PYX_INC_MEMVIEW(&__pyx_t_14, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_i; Py_ssize_t __pyx_tmp_stride = __pyx_v_dij.strides[0]; __pyx_t_14.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_14.shape[0] = __pyx_v_dij.shape[1]; __pyx_t_14.strides[0] = __pyx_v_dij.strides[1]; __pyx_t_14.suboffsets[0] = -1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_update_t_c(__pyx_v_SS_m, __pyx_t_7, __pyx_t_24, __pyx_v_I0, __pyx_v_u, __pyx_t_14, __pyx_v_sw_ss, __pyx_v_sw_fs); __PYX_XDEC_MEMVIEW(&__pyx_t_7, 0); __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_24, 0); __pyx_t_24.memview = NULL; __pyx_t_24.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_14, 0); __pyx_t_14.memview = NULL; __pyx_t_14.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 }
+725: return np.asarray(dij)
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_asarray); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_dij, 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_4)) __PYX_ERR(0, 725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_asarray); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_dij, 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_4)) __PYX_ERR(0, 725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
726:
+727: def mse_frame(float_t[:, :, ::1] I_n, float_t[:, ::1] W, float_t[:, ::1] I0,
/* Python wrapper */ static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_9mse_frame(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_6pyrost_3bin_6pyrost_8mse_frame[] = "mse_frame(signatures, args, kwargs, defaults)\nReturn the average mean-squared-error (MSE) value per pixel.\n\n Parameters\n ----------\n I_n : numpy.ndarray\n Measured intensity frames.\n W : numpy.ndarray\n Measured frames' whitefield.\n I0 : numpy.ndarray\n Reference image of the sample.\n u : numpy.ndarray\n The pixel mapping between the data at\n the detector plane and the reference image at\n the reference plane.\n di : numpy.ndarray\n Sample's translations along the slow detector axis\n in pixels.\n dj : numpy.ndarray\n Sample's translations along the fast detector axis\n in pixels.\n ls : float\n Reference image length scale in pixels.\n num_threads : int, optional\n Number of threads.\n\n Returns\n -------\n mse : numpy.ndarray\n Average MSE per pixel.\n\n See Also\n --------\n update_pixel_map_gs : Description of error metric which\n is being minimized.\n "; static PyMethodDef __pyx_mdef_6pyrost_3bin_6pyrost_9mse_frame = {"mse_frame", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pyrost_3bin_6pyrost_9mse_frame, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_8mse_frame}; static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_9mse_frame(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, 727, __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, 727, __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, 727, __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, 727, __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, 727, __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_8mse_frame(__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_8mse_frame(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("mse_frame", 0); __Pyx_INCREF(__pyx_v_kwargs); __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 727, __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, 727, __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, 727, __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, 727, __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, 727, __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, 727, __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, 727, __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, 727, __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, 727, __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, 727, __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, 727, __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, 727, __pyx_L1_error) __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_int_7); __Pyx_GIVEREF(__pyx_int_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_7); __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, 727, __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, 727, __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, 727, __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, 727, __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, 727, __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, 727, __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, 727, __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, 727, __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, 727, __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, 727, __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, 727, __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, 727, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 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, 727, __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, 727, __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, 727, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 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, 727, __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_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, 727, __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_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, 727, __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, 727, __pyx_L1_error) goto __pyx_L10_break; } __pyx_L10_break:; __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 727, __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, 727, __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, 727, __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, 727, __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, 727, __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_) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s_); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 727, __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, 727, __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__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 727, __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, 727, __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, 727, __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, 727, __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, 727, __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, 727, __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__3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 727, __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, 727, __pyx_L1_error) } __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 727, __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__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 727, __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, 727, __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, 727, __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, 727, __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_92__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_defaults18, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 727, __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, 727, __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__pyx_pw_6pyrost_3bin_6pyrost_39mse_frame(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_0__pyx_mdef_6pyrost_3bin_6pyrost_39mse_frame = {"__pyx_fuse_0mse_frame", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0__pyx_pw_6pyrost_3bin_6pyrost_39mse_frame, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_8mse_frame}; static PyObject *__pyx_fuse_0__pyx_pw_6pyrost_3bin_6pyrost_39mse_frame(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 } }; __pyx_t_5numpy_float64_t __pyx_v_ls; unsigned int __pyx_v_num_threads; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mse_frame (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_ls,&__pyx_n_s_num_threads,0}; PyObject* values[8] = {0,0,0,0,0,0,0,0}; __pyx_defaults18 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults18, __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 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("mse_frame", 0, 7, 8, 1); __PYX_ERR(0, 727, __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("mse_frame", 0, 7, 8, 2); __PYX_ERR(0, 727, __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("mse_frame", 0, 7, 8, 3); __PYX_ERR(0, 727, __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("mse_frame", 0, 7, 8, 4); __PYX_ERR(0, 727, __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("mse_frame", 0, 7, 8, 5); __PYX_ERR(0, 727, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ls)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("mse_frame", 0, 7, 8, 6); __PYX_ERR(0, 727, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 7: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads); if (value) { values[7] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "mse_frame") < 0)) __PYX_ERR(0, 727, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); CYTHON_FALLTHROUGH; case 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_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 727, __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, 727, __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, 727, __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, 728, __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, 728, __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, 728, __pyx_L3_error) __pyx_v_ls = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_ls == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 728, __pyx_L3_error) if (values[7]) { __pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[7]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 728, __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("mse_frame", 0, 7, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 727, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyrost.bin.pyrost.mse_frame", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_38mse_frame(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ls, __pyx_v_num_threads); 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_38mse_frame(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, __pyx_t_5numpy_float64_t __pyx_v_ls, unsigned int __pyx_v_num_threads) { PyObject *__pyx_v_dtype = 0; npy_intp __pyx_v_a; npy_intp __pyx_v_b; npy_intp __pyx_v_c; CYTHON_UNUSED npy_intp __pyx_v_aa; CYTHON_UNUSED npy_intp __pyx_v_bb; int __pyx_v_j; int __pyx_v_k; int __pyx_v_t; __pyx_t_5numpy_float64_t *__pyx_v_mptr; __Pyx_memviewslice __pyx_v_I = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_mse_f = { 0, 0, { 0 }, { 0 }, { 0 } }; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_0mse_frame", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __PYX_XDEC_MEMVIEW(&__pyx_t_5, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_13, 1); __Pyx_AddTraceback("pyrost.bin.pyrost.mse_frame", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_dtype); __PYX_XDEC_MEMVIEW(&__pyx_v_I, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_mse_f, 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_94__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_defaults19, __pyx_self)->__pyx_arg_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 727, __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, 727, __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__pyx_pw_6pyrost_3bin_6pyrost_41mse_frame(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_1__pyx_mdef_6pyrost_3bin_6pyrost_41mse_frame = {"__pyx_fuse_1mse_frame", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1__pyx_pw_6pyrost_3bin_6pyrost_41mse_frame, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_8mse_frame}; static PyObject *__pyx_fuse_1__pyx_pw_6pyrost_3bin_6pyrost_41mse_frame(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 } }; __pyx_t_5numpy_float32_t __pyx_v_ls; unsigned int __pyx_v_num_threads; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mse_frame (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_ls,&__pyx_n_s_num_threads,0}; PyObject* values[8] = {0,0,0,0,0,0,0,0}; __pyx_defaults19 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults19, __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 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("mse_frame", 0, 7, 8, 1); __PYX_ERR(0, 727, __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("mse_frame", 0, 7, 8, 2); __PYX_ERR(0, 727, __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("mse_frame", 0, 7, 8, 3); __PYX_ERR(0, 727, __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("mse_frame", 0, 7, 8, 4); __PYX_ERR(0, 727, __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("mse_frame", 0, 7, 8, 5); __PYX_ERR(0, 727, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ls)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("mse_frame", 0, 7, 8, 6); __PYX_ERR(0, 727, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 7: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads); if (value) { values[7] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "mse_frame") < 0)) __PYX_ERR(0, 727, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); CYTHON_FALLTHROUGH; case 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_float32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 727, __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, 727, __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, 727, __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, 728, __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, 728, __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, 728, __pyx_L3_error) __pyx_v_ls = __pyx_PyFloat_AsFloat(values[6]); if (unlikely((__pyx_v_ls == ((npy_float32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 728, __pyx_L3_error) if (values[7]) { __pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[7]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 728, __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("mse_frame", 0, 7, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 727, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyrost.bin.pyrost.mse_frame", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_40mse_frame(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ls, __pyx_v_num_threads); 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_40mse_frame(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, __pyx_t_5numpy_float32_t __pyx_v_ls, unsigned int __pyx_v_num_threads) { PyObject *__pyx_v_dtype = 0; npy_intp __pyx_v_a; npy_intp __pyx_v_b; npy_intp __pyx_v_c; CYTHON_UNUSED npy_intp __pyx_v_aa; CYTHON_UNUSED npy_intp __pyx_v_bb; int __pyx_v_j; int __pyx_v_k; int __pyx_v_t; __pyx_t_5numpy_float32_t *__pyx_v_mptr; __Pyx_memviewslice __pyx_v_I = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_mse_f = { 0, 0, { 0 }, { 0 }, { 0 } }; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_1mse_frame", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __PYX_XDEC_MEMVIEW(&__pyx_t_5, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_13, 1); __Pyx_AddTraceback("pyrost.bin.pyrost.mse_frame", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_dtype); __PYX_XDEC_MEMVIEW(&__pyx_v_I, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_mse_f, 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_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__33 = PyTuple_Pack(20, __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_ls, __pyx_n_s_num_threads, __pyx_n_s_dtype, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_c, __pyx_n_s_aa, __pyx_n_s_bb, __pyx_n_s_j, __pyx_n_s_k, __pyx_n_s_t, __pyx_n_s_mptr, __pyx_n_s_I, __pyx_n_s_mse_f); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 727, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__33); __Pyx_GIVEREF(__pyx_tuple__33); __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_6pyrost_3bin_6pyrost_39mse_frame, 0, __pyx_n_s_mse_frame, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__34)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults18), 0)) __PYX_ERR(0, 727, __pyx_L1_error) __Pyx_CyFunction_Defaults(__pyx_defaults18, __pyx_t_4)->__pyx_arg_num_threads = 1; __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3); __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pyrost_3bin_6pyrost_92__defaults__); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_float64_t, __pyx_t_4) < 0) __PYX_ERR(0, 727, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_6pyrost_3bin_6pyrost_41mse_frame, 0, __pyx_n_s_mse_frame, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__34)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults19), 0)) __PYX_ERR(0, 727, __pyx_L1_error) __Pyx_CyFunction_Defaults(__pyx_defaults19, __pyx_t_4)->__pyx_arg_num_threads = 1; __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3); __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pyrost_3bin_6pyrost_94__defaults__); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_float32_t, __pyx_t_4) < 0) __PYX_ERR(0, 727, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_mdef_6pyrost_3bin_6pyrost_9mse_frame, 0, __pyx_n_s_mse_frame, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__34)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3); ((__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_mse_frame, __pyx_t_4) < 0) __PYX_ERR(0, 727, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_codeobj__34 = (PyObject*)__Pyx_PyCode_New(8, 0, 20, 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_mse_frame, 727, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__34)) __PYX_ERR(0, 727, __pyx_L1_error)
+728: float_t[:, :, ::1] u, float_t[::1] di, float_t[::1] dj, float_t ls, unsigned num_threads=1):
__pyx_t_2 = __Pyx_PyInt_From_long(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
729: """Return the average mean-squared-error (MSE) value per pixel.
730:
731: Parameters
732: ----------
733: I_n : numpy.ndarray
734: Measured intensity frames.
735: W : numpy.ndarray
736: Measured frames' whitefield.
737: I0 : numpy.ndarray
738: Reference image of the sample.
739: u : numpy.ndarray
740: The pixel mapping between the data at
741: the detector plane and the reference image at
742: the reference plane.
743: di : numpy.ndarray
744: Sample's translations along the slow detector axis
745: in pixels.
746: dj : numpy.ndarray
747: Sample's translations along the fast detector axis
748: in pixels.
749: ls : float
750: Reference image length scale in pixels.
751: num_threads : int, optional
752: Number of threads.
753:
754: Returns
755: -------
756: mse : numpy.ndarray
757: Average MSE per pixel.
758:
759: See Also
760: --------
761: update_pixel_map_gs : Description of error metric which
762: is being minimized.
763: """
764: cdef:
+765: str dtype = 'float64' if float_t is np.float64_t else 'float32'
if ((1 != 0)) { __Pyx_INCREF(__pyx_n_u_float64); __pyx_t_1 = __pyx_n_u_float64; } else { __Pyx_INCREF(__pyx_n_u_float32); __pyx_t_1 = __pyx_n_u_float32; } __pyx_v_dtype = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* … */ if ((0 != 0)) { __Pyx_INCREF(__pyx_n_u_float64); __pyx_t_1 = __pyx_n_u_float64; } else { __Pyx_INCREF(__pyx_n_u_float32); __pyx_t_1 = __pyx_n_u_float32; } __pyx_v_dtype = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+766: np.npy_intp a = I_n.shape[0], b = I_n.shape[1], c = I_n.shape[2]
__pyx_v_a = (__pyx_v_I_n.shape[0]); __pyx_v_b = (__pyx_v_I_n.shape[1]); __pyx_v_c = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_a = (__pyx_v_I_n.shape[0]); __pyx_v_b = (__pyx_v_I_n.shape[1]); __pyx_v_c = (__pyx_v_I_n.shape[2]);
+767: np.npy_intp aa = I0.shape[0], bb = I0.shape[1]
__pyx_v_aa = (__pyx_v_I0.shape[0]); __pyx_v_bb = (__pyx_v_I0.shape[1]); /* … */ __pyx_v_aa = (__pyx_v_I0.shape[0]); __pyx_v_bb = (__pyx_v_I0.shape[1]);
768: int j, k, t
769: float_t *mptr
+770: float_t[:, ::1] I = np.empty((num_threads, a + 1), dtype=dtype)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyInt_From_long((__pyx_v_a + 1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 770, __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_3); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 770, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_I = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL; /* … */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyInt_From_long((__pyx_v_a + 1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 770, __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_3); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 770, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_I = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL;
+771: float_t[:, ::1] mse_f = np.empty((b, c), dtype=dtype)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_Py_intptr_t(__pyx_v_b); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyInt_From_Py_intptr_t(__pyx_v_c); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 771, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_mse_f = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL; /* … */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_Py_intptr_t(__pyx_v_b); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyInt_From_Py_intptr_t(__pyx_v_c); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 771, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_mse_f = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL;
+772: 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_mptr) { #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_mptr) num_threads(__pyx_v_num_threads) #endif /* _OPENMP */ { /* Initialize private variables to invalid values */ __pyx_v_mptr = ((__pyx_t_5numpy_float64_t *)1); /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } } /* … */ { #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_mptr) { #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_mptr) num_threads(__pyx_v_num_threads) #endif /* _OPENMP */ { /* Initialize private variables to invalid values */ __pyx_v_mptr = ((__pyx_t_5numpy_float32_t *)1); /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+773: mptr = <float_t *>malloc(3 * sizeof(float_t))
__pyx_v_mptr = ((__pyx_t_5numpy_float64_t *)malloc((3 * (sizeof(__pyx_t_5numpy_float64_t))))); /* … */ __pyx_v_mptr = ((__pyx_t_5numpy_float32_t *)malloc((3 * (sizeof(__pyx_t_5numpy_float32_t)))));
+774: if mptr is NULL:
__pyx_t_6 = ((__pyx_v_mptr == NULL) != 0); if (__pyx_t_6) { /* … */ } /* … */ __pyx_t_6 = ((__pyx_v_mptr == NULL) != 0); if (__pyx_t_6) { /* … */ }
+775: abort()
abort(); /* … */ abort();
+776: mptr[2] = NO_VAR
(__pyx_v_mptr[2]) = -1.0; /* … */ (__pyx_v_mptr[2]) = -1.0;
+777: for k in prange(c, schedule='guided'):
__pyx_t_7 = __pyx_v_c; if ((1 == 0)) abort(); { __pyx_t_9 = (__pyx_t_7 - 0 + 1 - 1/abs(1)) / 1; if (__pyx_t_9 > 0) { #ifdef _OPENMP #pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) lastprivate(__pyx_v_t) schedule(guided) #endif /* _OPENMP */ for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_9; __pyx_t_8++){ { __pyx_v_k = (int)(0 + 1 * __pyx_t_8); /* Initialize private variables to invalid values */ __pyx_v_j = ((int)0xbad0bad0); __pyx_v_t = ((int)0xbad0bad0); /* … */ __pyx_t_7 = __pyx_v_c; if ((1 == 0)) abort(); { __pyx_t_9 = (__pyx_t_7 - 0 + 1 - 1/abs(1)) / 1; if (__pyx_t_9 > 0) { #ifdef _OPENMP #pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) lastprivate(__pyx_v_t) schedule(guided) #endif /* _OPENMP */ for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_9; __pyx_t_8++){ { __pyx_v_k = (int)(0 + 1 * __pyx_t_8); /* Initialize private variables to invalid values */ __pyx_v_j = ((int)0xbad0bad0); __pyx_v_t = ((int)0xbad0bad0);
+778: t = openmp.omp_get_thread_num()
__pyx_v_t = omp_get_thread_num(); /* … */ __pyx_v_t = omp_get_thread_num();
+779: for j in range(b):
__pyx_t_10 = __pyx_v_b; __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_j = __pyx_t_12; /* … */ __pyx_t_10 = __pyx_v_b; __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_j = __pyx_t_12;
+780: krig_data_c(I[t], I_n, W, u, j, k, ls)
__pyx_t_13.data = __pyx_v_I.data; __pyx_t_13.memview = __pyx_v_I.memview; __PYX_INC_MEMVIEW(&__pyx_t_13, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_t; Py_ssize_t __pyx_tmp_stride = __pyx_v_I.strides[0]; __pyx_t_13.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_13.shape[0] = __pyx_v_I.shape[1]; __pyx_t_13.strides[0] = __pyx_v_I.strides[1]; __pyx_t_13.suboffsets[0] = -1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_krig_data_c(__pyx_t_13, __pyx_v_I_n, __pyx_v_W, __pyx_v_u, __pyx_v_j, __pyx_v_k, __pyx_v_ls); __PYX_XDEC_MEMVIEW(&__pyx_t_13, 0); __pyx_t_13.memview = NULL; __pyx_t_13.data = NULL; /* … */ __pyx_t_13.data = __pyx_v_I.data; __pyx_t_13.memview = __pyx_v_I.memview; __PYX_INC_MEMVIEW(&__pyx_t_13, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_t; Py_ssize_t __pyx_tmp_stride = __pyx_v_I.strides[0]; __pyx_t_13.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_13.shape[0] = __pyx_v_I.shape[1]; __pyx_t_13.strides[0] = __pyx_v_I.strides[1]; __pyx_t_13.suboffsets[0] = -1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_krig_data_c(__pyx_t_13, __pyx_v_I_n, __pyx_v_W, __pyx_v_u, __pyx_v_j, __pyx_v_k, __pyx_v_ls); __PYX_XDEC_MEMVIEW(&__pyx_t_13, 0); __pyx_t_13.memview = NULL; __pyx_t_13.data = NULL;
+781: mse_bi(mptr, I[t], I0, di, dj, u[0, j, k], u[1, j, k])
__pyx_t_13.data = __pyx_v_I.data; __pyx_t_13.memview = __pyx_v_I.memview; __PYX_INC_MEMVIEW(&__pyx_t_13, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_t; Py_ssize_t __pyx_tmp_stride = __pyx_v_I.strides[0]; __pyx_t_13.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_13.shape[0] = __pyx_v_I.shape[1]; __pyx_t_13.strides[0] = __pyx_v_I.strides[1]; __pyx_t_13.suboffsets[0] = -1; __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_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mptr, __pyx_t_13, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, (*((__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_XDEC_MEMVIEW(&__pyx_t_13, 0); __pyx_t_13.memview = NULL; __pyx_t_13.data = NULL; /* … */ __pyx_t_13.data = __pyx_v_I.data; __pyx_t_13.memview = __pyx_v_I.memview; __PYX_INC_MEMVIEW(&__pyx_t_13, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_t; Py_ssize_t __pyx_tmp_stride = __pyx_v_I.strides[0]; __pyx_t_13.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_13.shape[0] = __pyx_v_I.shape[1]; __pyx_t_13.strides[0] = __pyx_v_I.strides[1]; __pyx_t_13.suboffsets[0] = -1; __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_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mptr, __pyx_t_13, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, (*((__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_XDEC_MEMVIEW(&__pyx_t_13, 0); __pyx_t_13.memview = NULL; __pyx_t_13.data = NULL;
+782: mse_f[j, k] = mptr[0] / mptr[1]
__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_mse_f.data + __pyx_t_19 * __pyx_v_mse_f.strides[0]) )) + __pyx_t_18)) )) = ((__pyx_v_mptr[0]) / (__pyx_v_mptr[1])); } } } } } /* … */ __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_mse_f.data + __pyx_t_19 * __pyx_v_mse_f.strides[0]) )) + __pyx_t_18)) )) = ((__pyx_v_mptr[0]) / (__pyx_v_mptr[1])); } } } } }
+783: free(mptr)
free(__pyx_v_mptr); } } #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_mptr); } } #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 }
+784: return np.asarray(mse_f)
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_asarray); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_mse_f, 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, 784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_asarray); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_mse_f, 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, 784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
785:
+786: def mse_total(float_t[:, :, ::1] I_n, float_t[:, ::1] W, float_t[:, ::1] I0,
/* Python wrapper */ static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_11mse_total(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_6pyrost_3bin_6pyrost_10mse_total[] = "mse_total(signatures, args, kwargs, defaults)\nReturn the average total mean-squared-error (MSE).\n\n Parameters\n ----------\n I_n : numpy.ndarray\n Measured intensity frames.\n W : numpy.ndarray\n Measured frames' whitefield.\n I0 : numpy.ndarray\n Reference image of the sample.\n u : numpy.ndarray\n The pixel mapping between the data at\n the detector plane and the reference image at\n the reference plane.\n di : numpy.ndarray\n Sample's translations along the slow detector axis\n in pixels.\n dj : numpy.ndarray\n Sample's translations along the fast detector axis\n in pixels.\n ls : float\n Reference image length scale in pixels.\n num_threads : int, optional\n Number of threads.\n\n Returns\n -------\n mse : float\n Average total MSE.\n\n See Also\n --------\n update_translations_gs : Description of error metric which\n is being minimized.\n "; static PyMethodDef __pyx_mdef_6pyrost_3bin_6pyrost_11mse_total = {"mse_total", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pyrost_3bin_6pyrost_11mse_total, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_10mse_total}; static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_11mse_total(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, 786, __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, 786, __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, 786, __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, 786, __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, 786, __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_10mse_total(__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_10mse_total(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("mse_total", 0); __Pyx_INCREF(__pyx_v_kwargs); __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 786, __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, 786, __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, 786, __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, 786, __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, 786, __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, 786, __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, 786, __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, 786, __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, 786, __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, 786, __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, 786, __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, 786, __pyx_L1_error) __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_int_7); __Pyx_GIVEREF(__pyx_int_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_7); __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, 786, __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, 786, __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, 786, __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, 786, __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, 786, __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, 786, __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, 786, __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, 786, __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, 786, __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, 786, __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, 786, __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, 786, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 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, 786, __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, 786, __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, 786, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 3) != 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, 786, __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_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, 786, __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_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, 786, __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, 786, __pyx_L1_error) goto __pyx_L10_break; } __pyx_L10_break:; __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 786, __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, 786, __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, 786, __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, 786, __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, 786, __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_) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s_); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 786, __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, 786, __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__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 786, __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, 786, __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, 786, __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, 786, __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, 786, __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, 786, __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__3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 786, __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, 786, __pyx_L1_error) } __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 786, __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__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 786, __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, 786, __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, 786, __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, 786, __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_100__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, 786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 786, __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, 786, __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__pyx_pw_6pyrost_3bin_6pyrost_45mse_total(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_0__pyx_mdef_6pyrost_3bin_6pyrost_45mse_total = {"__pyx_fuse_0mse_total", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0__pyx_pw_6pyrost_3bin_6pyrost_45mse_total, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_10mse_total}; static PyObject *__pyx_fuse_0__pyx_pw_6pyrost_3bin_6pyrost_45mse_total(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 } }; __pyx_t_5numpy_float64_t __pyx_v_ls; unsigned int __pyx_v_num_threads; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mse_total (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_ls,&__pyx_n_s_num_threads,0}; PyObject* values[8] = {0,0,0,0,0,0,0,0}; __pyx_defaults22 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults22, __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 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("mse_total", 0, 7, 8, 1); __PYX_ERR(0, 786, __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("mse_total", 0, 7, 8, 2); __PYX_ERR(0, 786, __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("mse_total", 0, 7, 8, 3); __PYX_ERR(0, 786, __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("mse_total", 0, 7, 8, 4); __PYX_ERR(0, 786, __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("mse_total", 0, 7, 8, 5); __PYX_ERR(0, 786, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ls)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("mse_total", 0, 7, 8, 6); __PYX_ERR(0, 786, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 7: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads); if (value) { values[7] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "mse_total") < 0)) __PYX_ERR(0, 786, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); CYTHON_FALLTHROUGH; case 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_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 786, __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, 786, __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, 786, __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, 787, __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, 787, __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, 787, __pyx_L3_error) __pyx_v_ls = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_ls == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L3_error) if (values[7]) { __pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[7]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __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("mse_total", 0, 7, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 786, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyrost.bin.pyrost.mse_total", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_44mse_total(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ls, __pyx_v_num_threads); 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_44mse_total(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, __pyx_t_5numpy_float64_t __pyx_v_ls, unsigned int __pyx_v_num_threads) { PyObject *__pyx_v_dtype = 0; npy_intp __pyx_v_a; npy_intp __pyx_v_b; npy_intp __pyx_v_c; int __pyx_v_j; int __pyx_v_k; int __pyx_v_t; __pyx_t_5numpy_float64_t __pyx_v_err; __pyx_t_5numpy_float64_t *__pyx_v_mptr; __Pyx_memviewslice __pyx_v_I = { 0, 0, { 0 }, { 0 }, { 0 } }; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_0mse_total", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __PYX_XDEC_MEMVIEW(&__pyx_t_5, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_13, 1); __Pyx_AddTraceback("pyrost.bin.pyrost.mse_total", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_dtype); __PYX_XDEC_MEMVIEW(&__pyx_v_I, 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_102__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, 786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 786, __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, 786, __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__pyx_pw_6pyrost_3bin_6pyrost_47mse_total(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_1__pyx_mdef_6pyrost_3bin_6pyrost_47mse_total = {"__pyx_fuse_1mse_total", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1__pyx_pw_6pyrost_3bin_6pyrost_47mse_total, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_10mse_total}; static PyObject *__pyx_fuse_1__pyx_pw_6pyrost_3bin_6pyrost_47mse_total(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 } }; __pyx_t_5numpy_float32_t __pyx_v_ls; unsigned int __pyx_v_num_threads; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mse_total (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_ls,&__pyx_n_s_num_threads,0}; PyObject* values[8] = {0,0,0,0,0,0,0,0}; __pyx_defaults23 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults23, __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 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("mse_total", 0, 7, 8, 1); __PYX_ERR(0, 786, __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("mse_total", 0, 7, 8, 2); __PYX_ERR(0, 786, __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("mse_total", 0, 7, 8, 3); __PYX_ERR(0, 786, __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("mse_total", 0, 7, 8, 4); __PYX_ERR(0, 786, __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("mse_total", 0, 7, 8, 5); __PYX_ERR(0, 786, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ls)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("mse_total", 0, 7, 8, 6); __PYX_ERR(0, 786, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 7: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads); if (value) { values[7] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "mse_total") < 0)) __PYX_ERR(0, 786, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); CYTHON_FALLTHROUGH; case 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_float32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_I_n.memview)) __PYX_ERR(0, 786, __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, 786, __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, 786, __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, 787, __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, 787, __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, 787, __pyx_L3_error) __pyx_v_ls = __pyx_PyFloat_AsFloat(values[6]); if (unlikely((__pyx_v_ls == ((npy_float32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L3_error) if (values[7]) { __pyx_v_num_threads = __Pyx_PyInt_As_unsigned_int(values[7]); if (unlikely((__pyx_v_num_threads == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 787, __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("mse_total", 0, 7, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 786, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyrost.bin.pyrost.mse_total", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_46mse_total(__pyx_self, __pyx_v_I_n, __pyx_v_W, __pyx_v_I0, __pyx_v_u, __pyx_v_di, __pyx_v_dj, __pyx_v_ls, __pyx_v_num_threads); 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_46mse_total(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, __pyx_t_5numpy_float32_t __pyx_v_ls, unsigned int __pyx_v_num_threads) { PyObject *__pyx_v_dtype = 0; npy_intp __pyx_v_a; npy_intp __pyx_v_b; npy_intp __pyx_v_c; int __pyx_v_j; int __pyx_v_k; int __pyx_v_t; __pyx_t_5numpy_float32_t __pyx_v_err; __pyx_t_5numpy_float32_t *__pyx_v_mptr; __Pyx_memviewslice __pyx_v_I = { 0, 0, { 0 }, { 0 }, { 0 } }; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_1mse_total", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __PYX_XDEC_MEMVIEW(&__pyx_t_5, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_13, 1); __Pyx_AddTraceback("pyrost.bin.pyrost.mse_total", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_dtype); __PYX_XDEC_MEMVIEW(&__pyx_v_I, 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(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = 0; /* … */ __pyx_tuple__35 = 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_ls, __pyx_n_s_num_threads, __pyx_n_s_dtype, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_c, __pyx_n_s_j, __pyx_n_s_k, __pyx_n_s_t, __pyx_n_s_err, __pyx_n_s_mptr, __pyx_n_s_I); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 786, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__35); __Pyx_GIVEREF(__pyx_tuple__35); __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_6pyrost_3bin_6pyrost_45mse_total, 0, __pyx_n_s_mse_total, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__36)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (!__Pyx_CyFunction_InitDefaults(__pyx_t_2, sizeof(__pyx_defaults22), 0)) __PYX_ERR(0, 786, __pyx_L1_error) __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_100__defaults__); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_float64_t, __pyx_t_2) < 0) __PYX_ERR(0, 786, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_6pyrost_3bin_6pyrost_47mse_total, 0, __pyx_n_s_mse_total, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__36)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (!__Pyx_CyFunction_InitDefaults(__pyx_t_2, sizeof(__pyx_defaults23), 0)) __PYX_ERR(0, 786, __pyx_L1_error) __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_102__defaults__); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_float32_t, __pyx_t_2) < 0) __PYX_ERR(0, 786, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_FusedFunction_New(&__pyx_mdef_6pyrost_3bin_6pyrost_11mse_total, 0, __pyx_n_s_mse_total, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__36)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 786, __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_3; __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_mse_total, __pyx_t_2) < 0) __PYX_ERR(0, 786, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_codeobj__36 = (PyObject*)__Pyx_PyCode_New(8, 0, 18, 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_mse_total, 786, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__36)) __PYX_ERR(0, 786, __pyx_L1_error)
+787: float_t[:, :, ::1] u, float_t[::1] di, float_t[::1] dj, float_t ls, unsigned num_threads=1):
__pyx_t_3 = __Pyx_PyInt_From_long(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3);
788: """Return the average total mean-squared-error (MSE).
789:
790: Parameters
791: ----------
792: I_n : numpy.ndarray
793: Measured intensity frames.
794: W : numpy.ndarray
795: Measured frames' whitefield.
796: I0 : numpy.ndarray
797: Reference image of the sample.
798: u : numpy.ndarray
799: The pixel mapping between the data at
800: the detector plane and the reference image at
801: the reference plane.
802: di : numpy.ndarray
803: Sample's translations along the slow detector axis
804: in pixels.
805: dj : numpy.ndarray
806: Sample's translations along the fast detector axis
807: in pixels.
808: ls : float
809: Reference image length scale in pixels.
810: num_threads : int, optional
811: Number of threads.
812:
813: Returns
814: -------
815: mse : float
816: Average total MSE.
817:
818: See Also
819: --------
820: update_translations_gs : Description of error metric which
821: is being minimized.
822: """
823: cdef:
+824: str dtype = 'float64' if float_t is np.float64_t else 'float32'
if ((1 != 0)) { __Pyx_INCREF(__pyx_n_u_float64); __pyx_t_1 = __pyx_n_u_float64; } else { __Pyx_INCREF(__pyx_n_u_float32); __pyx_t_1 = __pyx_n_u_float32; } __pyx_v_dtype = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* … */ if ((0 != 0)) { __Pyx_INCREF(__pyx_n_u_float64); __pyx_t_1 = __pyx_n_u_float64; } else { __Pyx_INCREF(__pyx_n_u_float32); __pyx_t_1 = __pyx_n_u_float32; } __pyx_v_dtype = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+825: np.npy_intp a = I_n.shape[0], b = I_n.shape[1], c = I_n.shape[2]
__pyx_v_a = (__pyx_v_I_n.shape[0]); __pyx_v_b = (__pyx_v_I_n.shape[1]); __pyx_v_c = (__pyx_v_I_n.shape[2]); /* … */ __pyx_v_a = (__pyx_v_I_n.shape[0]); __pyx_v_b = (__pyx_v_I_n.shape[1]); __pyx_v_c = (__pyx_v_I_n.shape[2]);
826: int j, k, t
+827: float_t err = 0
__pyx_v_err = 0.0; /* … */ __pyx_v_err = 0.0;
828: float_t *mptr
+829: float_t[:, ::1] I = np.empty((num_threads, a + 1), dtype=dtype)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyInt_From_long((__pyx_v_a + 1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 829, __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_3); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 829, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 829, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_I = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL; /* … */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_num_threads); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyInt_From_long((__pyx_v_a + 1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 829, __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_3); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 829, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 829, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_I = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL;
+830: 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_mptr) { #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_mptr) num_threads(__pyx_v_num_threads) #endif /* _OPENMP */ { /* Initialize private variables to invalid values */ __pyx_v_mptr = ((__pyx_t_5numpy_float64_t *)1); /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } } /* … */ { #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_mptr) { #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_mptr) num_threads(__pyx_v_num_threads) #endif /* _OPENMP */ { /* Initialize private variables to invalid values */ __pyx_v_mptr = ((__pyx_t_5numpy_float32_t *)1); /* … */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L5; } __pyx_L5:; } }
+831: mptr = <float_t *>malloc(3 * sizeof(float_t))
__pyx_v_mptr = ((__pyx_t_5numpy_float64_t *)malloc((3 * (sizeof(__pyx_t_5numpy_float64_t))))); /* … */ __pyx_v_mptr = ((__pyx_t_5numpy_float32_t *)malloc((3 * (sizeof(__pyx_t_5numpy_float32_t)))));
+832: if mptr is NULL:
__pyx_t_6 = ((__pyx_v_mptr == NULL) != 0); if (__pyx_t_6) { /* … */ } /* … */ __pyx_t_6 = ((__pyx_v_mptr == NULL) != 0); if (__pyx_t_6) { /* … */ }
+833: abort()
abort(); /* … */ abort();
+834: mptr[2] = NO_VAR
(__pyx_v_mptr[2]) = -1.0; /* … */ (__pyx_v_mptr[2]) = -1.0;
+835: for k in prange(c, schedule='guided'):
__pyx_t_7 = __pyx_v_c; if ((1 == 0)) abort(); { __pyx_t_9 = (__pyx_t_7 - 0 + 1 - 1/abs(1)) / 1; if (__pyx_t_9 > 0) { #ifdef _OPENMP #pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) lastprivate(__pyx_v_t) schedule(guided) #endif /* _OPENMP */ for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_9; __pyx_t_8++){ { __pyx_v_k = (int)(0 + 1 * __pyx_t_8); /* Initialize private variables to invalid values */ __pyx_v_j = ((int)0xbad0bad0); __pyx_v_t = ((int)0xbad0bad0); /* … */ __pyx_t_7 = __pyx_v_c; if ((1 == 0)) abort(); { __pyx_t_9 = (__pyx_t_7 - 0 + 1 - 1/abs(1)) / 1; if (__pyx_t_9 > 0) { #ifdef _OPENMP #pragma omp for lastprivate(__pyx_v_j) firstprivate(__pyx_v_k) lastprivate(__pyx_v_k) lastprivate(__pyx_v_t) schedule(guided) #endif /* _OPENMP */ for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_9; __pyx_t_8++){ { __pyx_v_k = (int)(0 + 1 * __pyx_t_8); /* Initialize private variables to invalid values */ __pyx_v_j = ((int)0xbad0bad0); __pyx_v_t = ((int)0xbad0bad0);
+836: t = openmp.omp_get_thread_num()
__pyx_v_t = omp_get_thread_num(); /* … */ __pyx_v_t = omp_get_thread_num();
+837: for j in range(b):
__pyx_t_10 = __pyx_v_b; __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_j = __pyx_t_12; /* … */ __pyx_t_10 = __pyx_v_b; __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_j = __pyx_t_12;
+838: krig_data_c(I[t], I_n, W, u, j, k, ls)
__pyx_t_13.data = __pyx_v_I.data; __pyx_t_13.memview = __pyx_v_I.memview; __PYX_INC_MEMVIEW(&__pyx_t_13, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_t; Py_ssize_t __pyx_tmp_stride = __pyx_v_I.strides[0]; __pyx_t_13.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_13.shape[0] = __pyx_v_I.shape[1]; __pyx_t_13.strides[0] = __pyx_v_I.strides[1]; __pyx_t_13.suboffsets[0] = -1; __pyx_fuse_0__pyx_f_6pyrost_3bin_6pyrost_krig_data_c(__pyx_t_13, __pyx_v_I_n, __pyx_v_W, __pyx_v_u, __pyx_v_j, __pyx_v_k, __pyx_v_ls); __PYX_XDEC_MEMVIEW(&__pyx_t_13, 0); __pyx_t_13.memview = NULL; __pyx_t_13.data = NULL; /* … */ __pyx_t_13.data = __pyx_v_I.data; __pyx_t_13.memview = __pyx_v_I.memview; __PYX_INC_MEMVIEW(&__pyx_t_13, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_t; Py_ssize_t __pyx_tmp_stride = __pyx_v_I.strides[0]; __pyx_t_13.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_13.shape[0] = __pyx_v_I.shape[1]; __pyx_t_13.strides[0] = __pyx_v_I.strides[1]; __pyx_t_13.suboffsets[0] = -1; __pyx_fuse_1__pyx_f_6pyrost_3bin_6pyrost_krig_data_c(__pyx_t_13, __pyx_v_I_n, __pyx_v_W, __pyx_v_u, __pyx_v_j, __pyx_v_k, __pyx_v_ls); __PYX_XDEC_MEMVIEW(&__pyx_t_13, 0); __pyx_t_13.memview = NULL; __pyx_t_13.data = NULL;
+839: mse_bi(mptr, I[t], I0, di, dj, u[0, j, k], u[1, j, k])
__pyx_t_13.data = __pyx_v_I.data; __pyx_t_13.memview = __pyx_v_I.memview; __PYX_INC_MEMVIEW(&__pyx_t_13, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_t; Py_ssize_t __pyx_tmp_stride = __pyx_v_I.strides[0]; __pyx_t_13.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_13.shape[0] = __pyx_v_I.shape[1]; __pyx_t_13.strides[0] = __pyx_v_I.strides[1]; __pyx_t_13.suboffsets[0] = -1; __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_fuse_0__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mptr, __pyx_t_13, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, (*((__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_XDEC_MEMVIEW(&__pyx_t_13, 0); __pyx_t_13.memview = NULL; __pyx_t_13.data = NULL; /* … */ __pyx_t_13.data = __pyx_v_I.data; __pyx_t_13.memview = __pyx_v_I.memview; __PYX_INC_MEMVIEW(&__pyx_t_13, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_t; Py_ssize_t __pyx_tmp_stride = __pyx_v_I.strides[0]; __pyx_t_13.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_13.shape[0] = __pyx_v_I.shape[1]; __pyx_t_13.strides[0] = __pyx_v_I.strides[1]; __pyx_t_13.suboffsets[0] = -1; __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_fuse_1__pyx_f_6pyrost_3bin_6pyrost_mse_bi(__pyx_v_mptr, __pyx_t_13, __pyx_v_I0, __pyx_v_di, __pyx_v_dj, (*((__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_XDEC_MEMVIEW(&__pyx_t_13, 0); __pyx_t_13.memview = NULL; __pyx_t_13.data = NULL;
+840: err += mptr[0] / mptr[1]
__pyx_v_err = (__pyx_v_err + ((__pyx_v_mptr[0]) / (__pyx_v_mptr[1]))); } } } } } /* … */ __pyx_v_err = (__pyx_v_err + ((__pyx_v_mptr[0]) / (__pyx_v_mptr[1]))); } } } } }
+841: free(mptr)
free(__pyx_v_mptr); } } #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_mptr); } } #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 }
+842: return err / b / c
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(((__pyx_v_err / ((__pyx_t_5numpy_float64_t)__pyx_v_b)) / ((__pyx_t_5numpy_float64_t)__pyx_v_c))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(((__pyx_v_err / ((__pyx_t_5numpy_float32_t)__pyx_v_b)) / ((__pyx_t_5numpy_float32_t)__pyx_v_c))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
843:
+844: def ct_integrate(float_t[:, ::1] sx_arr, float_t[:, ::1] sy_arr):
/* Python wrapper */ static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_13ct_integrate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_6pyrost_3bin_6pyrost_12ct_integrate[] = "ct_integrate(signatures, args, kwargs, defaults)\nPerform the Fourier Transform wavefront reconstruction [FTI]_\n with antisymmetric derivative integration [ASDI]_.\n\n Parameters\n ----------\n sx_arr : numpy.ndarray\n Array of gradient values along the fast axis.\n\n sy_arr : numpy.ndarray\n Array of gradient values along the slow axis.\n\n Returns\n -------\n w : numpy.ndarray\n Reconstructed wavefront.\n\n References\n ----------\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_13ct_integrate = {"ct_integrate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pyrost_3bin_6pyrost_13ct_integrate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_12ct_integrate}; static PyObject *__pyx_pw_6pyrost_3bin_6pyrost_13ct_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}; 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, 844, __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, 844, __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, 844, __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, 844, __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, 844, __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_12ct_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_12ct_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, 844, __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, 844, __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, 844, __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, 844, __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, 844, __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, 844, __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, 844, __pyx_L1_error) } __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_sx_arr, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 844, __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, 844, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_sx_arr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 844, __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, 844, __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, 844, __pyx_L1_error) __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 844, __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, 844, __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, 844, __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, 844, __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, 844, __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, 844, __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, 844, __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, 844, __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, 844, __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, 844, __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, 844, __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, 844, __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, 844, __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, 844, __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, 844, __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, 844, __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, 844, __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, 844, __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, 844, __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, 844, __pyx_L1_error) goto __pyx_L10_break; } __pyx_L10_break:; __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 844, __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, 844, __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, 844, __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, 844, __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, 844, __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_) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s_); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 844, __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, 844, __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__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 844, __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, 844, __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, 844, __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, 844, __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, 844, __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, 844, __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__3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 844, __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, 844, __pyx_L1_error) } __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 844, __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__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 844, __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, 844, __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, 844, __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, 844, __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; } /* Python wrapper */ static PyObject *__pyx_fuse_0__pyx_pw_6pyrost_3bin_6pyrost_51ct_integrate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_0__pyx_mdef_6pyrost_3bin_6pyrost_51ct_integrate = {"__pyx_fuse_0ct_integrate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0__pyx_pw_6pyrost_3bin_6pyrost_51ct_integrate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_12ct_integrate}; static PyObject *__pyx_fuse_0__pyx_pw_6pyrost_3bin_6pyrost_51ct_integrate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_sx_arr = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_sy_arr = { 0, 0, { 0 }, { 0 }, { 0 } }; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("ct_integrate (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sx_arr,&__pyx_n_s_sy_arr,0}; PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sx_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_sy_arr)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("ct_integrate", 1, 2, 2, 1); __PYX_ERR(0, 844, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ct_integrate") < 0)) __PYX_ERR(0, 844, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); } __pyx_v_sx_arr = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_sx_arr.memview)) __PYX_ERR(0, 844, __pyx_L3_error) __pyx_v_sy_arr = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_sy_arr.memview)) __PYX_ERR(0, 844, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("ct_integrate", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 844, __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:; __pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_50ct_integrate(__pyx_self, __pyx_v_sx_arr, __pyx_v_sy_arr); 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_50ct_integrate(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_sx_arr, __Pyx_memviewslice __pyx_v_sy_arr) { PyObject *__pyx_v_dtype = 0; npy_intp __pyx_v_a; npy_intp __pyx_v_b; int __pyx_v_i; int __pyx_v_j; __Pyx_memviewslice __pyx_v_s_asdi = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_sf_asdi = { 0, 0, { 0 }, { 0 }, { 0 } }; __pyx_t_5numpy_float64_t __pyx_v_xf; __pyx_t_5numpy_float64_t __pyx_v_yf; PyArrayObject *__pyx_v_sfx_asdi = 0; PyArrayObject *__pyx_v_sfy_asdi = 0; __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; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_0ct_integrate", 0); __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; __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; /* … */ /* 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_XDEC_MEMVIEW(&__pyx_t_5, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1); __Pyx_XDECREF(__pyx_t_27); { 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(__pyx_v_dtype); __PYX_XDEC_MEMVIEW(&__pyx_v_s_asdi, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_sf_asdi, 1); __Pyx_XDECREF((PyObject *)__pyx_v_sfx_asdi); __Pyx_XDECREF((PyObject *)__pyx_v_sfy_asdi); __PYX_XDEC_MEMVIEW(&__pyx_v_sx_arr, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_sy_arr, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_fuse_1__pyx_pw_6pyrost_3bin_6pyrost_53ct_integrate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_1__pyx_mdef_6pyrost_3bin_6pyrost_53ct_integrate = {"__pyx_fuse_1ct_integrate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1__pyx_pw_6pyrost_3bin_6pyrost_53ct_integrate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pyrost_3bin_6pyrost_12ct_integrate}; static PyObject *__pyx_fuse_1__pyx_pw_6pyrost_3bin_6pyrost_53ct_integrate(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_sx_arr = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_sy_arr = { 0, 0, { 0 }, { 0 }, { 0 } }; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("ct_integrate (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sx_arr,&__pyx_n_s_sy_arr,0}; PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sx_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_sy_arr)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("ct_integrate", 1, 2, 2, 1); __PYX_ERR(0, 844, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ct_integrate") < 0)) __PYX_ERR(0, 844, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); } __pyx_v_sx_arr = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_sx_arr.memview)) __PYX_ERR(0, 844, __pyx_L3_error) __pyx_v_sy_arr = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_sy_arr.memview)) __PYX_ERR(0, 844, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("ct_integrate", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 844, __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:; __pyx_r = __pyx_pf_6pyrost_3bin_6pyrost_52ct_integrate(__pyx_self, __pyx_v_sx_arr, __pyx_v_sy_arr); 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_52ct_integrate(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_sx_arr, __Pyx_memviewslice __pyx_v_sy_arr) { PyObject *__pyx_v_dtype = 0; npy_intp __pyx_v_a; npy_intp __pyx_v_b; int __pyx_v_i; int __pyx_v_j; __Pyx_memviewslice __pyx_v_s_asdi = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_sf_asdi = { 0, 0, { 0 }, { 0 }, { 0 } }; __pyx_t_5numpy_float32_t __pyx_v_xf; __pyx_t_5numpy_float32_t __pyx_v_yf; PyArrayObject *__pyx_v_sfx_asdi = 0; PyArrayObject *__pyx_v_sfy_asdi = 0; __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; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_1ct_integrate", 0); __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; __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; /* … */ /* 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_XDEC_MEMVIEW(&__pyx_t_5, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1); __Pyx_XDECREF(__pyx_t_25); { 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(__pyx_v_dtype); __PYX_XDEC_MEMVIEW(&__pyx_v_s_asdi, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_sf_asdi, 1); __Pyx_XDECREF((PyObject *)__pyx_v_sfx_asdi); __Pyx_XDECREF((PyObject *)__pyx_v_sfy_asdi); __PYX_XDEC_MEMVIEW(&__pyx_v_sx_arr, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_sy_arr, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__37 = PyTuple_Pack(15, __pyx_n_s_sx_arr, __pyx_n_s_sy_arr, __pyx_n_s_dtype, __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_s_asdi, __pyx_n_s_sf_asdi, __pyx_n_s_xf, __pyx_n_s_yf, __pyx_n_s_sfx_asdi, __pyx_n_s_sfy_asdi); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(0, 844, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__37); __Pyx_GIVEREF(__pyx_tuple__37); /* … */ __pyx_t_4 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_6pyrost_3bin_6pyrost_51ct_integrate, 0, __pyx_n_s_ct_integrate, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__38)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_empty_tuple); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_float64_t, __pyx_t_2) < 0) __PYX_ERR(0, 844, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_6pyrost_3bin_6pyrost_53ct_integrate, 0, __pyx_n_s_ct_integrate, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__38)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_empty_tuple); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_float32_t, __pyx_t_2) < 0) __PYX_ERR(0, 844, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_FusedFunction_New(&__pyx_mdef_6pyrost_3bin_6pyrost_13ct_integrate, 0, __pyx_n_s_ct_integrate, NULL, __pyx_n_s_pyrost_bin_pyrost, __pyx_d, ((PyObject *)__pyx_codeobj__38)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_empty_tuple); ((__pyx_FusedFunctionObject *) __pyx_t_2)->__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_2) < 0) __PYX_ERR(0, 844, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_codeobj__38 = (PyObject*)__Pyx_PyCode_New(2, 0, 15, 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_ct_integrate, 844, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__38)) __PYX_ERR(0, 844, __pyx_L1_error)
845: """Perform the Fourier Transform wavefront reconstruction [FTI]_
846: with antisymmetric derivative integration [ASDI]_.
847:
848: Parameters
849: ----------
850: sx_arr : numpy.ndarray
851: Array of gradient values along the fast axis.
852:
853: sy_arr : numpy.ndarray
854: Array of gradient values along the slow axis.
855:
856: Returns
857: -------
858: w : numpy.ndarray
859: Reconstructed wavefront.
860:
861: References
862: ----------
863: .. [FTI] C. Kottler, C. David, F. Pfeiffer, and O. Bunk,
864: "A two-directional approach for grating based
865: differential phase contrast imaging using hard x-rays,"
866: Opt. Express 15, 1175-1181 (2007).
867: .. [ASDI] Pierre Bon, Serge Monneret, and Benoit Wattellier,
868: "Noniterative boundary-artifact-free wavefront
869: reconstruction from its derivatives," Appl. Opt. 51,
870: 5698-5704 (2012).
871: """
872: cdef:
+873: str dtype = 'float64' if float_t is np.float64_t else 'float32'
if ((1 != 0)) { __Pyx_INCREF(__pyx_n_u_float64); __pyx_t_1 = __pyx_n_u_float64; } else { __Pyx_INCREF(__pyx_n_u_float32); __pyx_t_1 = __pyx_n_u_float32; } __pyx_v_dtype = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* … */ if ((0 != 0)) { __Pyx_INCREF(__pyx_n_u_float64); __pyx_t_1 = __pyx_n_u_float64; } else { __Pyx_INCREF(__pyx_n_u_float32); __pyx_t_1 = __pyx_n_u_float32; } __pyx_v_dtype = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+874: 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]);
875: int i, j, ii, jj
+876: float_t[:, ::1] s_asdi = np.empty((2 * a, 2 * b), dtype=dtype)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_long((2 * __pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyInt_From_long((2 * __pyx_v_b)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 876, __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_3); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 876, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 876, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_s_asdi = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL; /* … */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_long((2 * __pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyInt_From_long((2 * __pyx_v_b)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 876, __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_3); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 876, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 876, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_s_asdi = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL;
+877: complex_t[:, ::1] sf_asdi = np.empty((2 * a, 2 * b), dtype='complex128')
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_long((2 * __pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyInt_From_long((2 * __pyx_v_b)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_n_u_complex128) < 0) __PYX_ERR(0, 877, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_dc___pyx_t_double_complex(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 877, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_sf_asdi = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; /* … */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_long((2 * __pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyInt_From_long((2 * __pyx_v_b)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_n_u_complex128) < 0) __PYX_ERR(0, 877, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_dc___pyx_t_double_complex(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 877, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_sf_asdi = __pyx_t_6; __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL;
878: float_t xf, yf
+879: for i in range(a):
__pyx_t_7 = __pyx_v_a; __pyx_t_8 = __pyx_t_7; for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_i = __pyx_t_9; /* … */ __pyx_t_7 = __pyx_v_a; __pyx_t_8 = __pyx_t_7; for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_i = __pyx_t_9;
+880: for j in range(b):
__pyx_t_10 = __pyx_v_b; __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_j = __pyx_t_12; /* … */ __pyx_t_10 = __pyx_v_b; __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_j = __pyx_t_12;
+881: s_asdi[i, j] = -sx_arr[a - i - 1, b - j - 1]
__pyx_t_13 = ((__pyx_v_a - __pyx_v_i) - 1); __pyx_t_14 = ((__pyx_v_b - __pyx_v_j) - 1); __pyx_t_15 = __pyx_v_i; __pyx_t_16 = __pyx_v_j; *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_s_asdi.data + __pyx_t_15 * __pyx_v_s_asdi.strides[0]) )) + __pyx_t_16)) )) = (-(*((__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_14)) )))); } } /* … */ __pyx_t_13 = ((__pyx_v_a - __pyx_v_i) - 1); __pyx_t_14 = ((__pyx_v_b - __pyx_v_j) - 1); __pyx_t_15 = __pyx_v_i; __pyx_t_16 = __pyx_v_j; *((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_s_asdi.data + __pyx_t_15 * __pyx_v_s_asdi.strides[0]) )) + __pyx_t_16)) )) = (-(*((__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_14)) )))); } }
+882: for i in range(a):
__pyx_t_7 = __pyx_v_a; __pyx_t_8 = __pyx_t_7; for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_i = __pyx_t_9; /* … */ __pyx_t_7 = __pyx_v_a; __pyx_t_8 = __pyx_t_7; for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_i = __pyx_t_9;
+883: for j in range(b):
__pyx_t_10 = __pyx_v_b; __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_j = __pyx_t_12; /* … */ __pyx_t_10 = __pyx_v_b; __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_j = __pyx_t_12;
+884: s_asdi[i + a, j] = sx_arr[i, b - j - 1]
__pyx_t_14 = __pyx_v_i; __pyx_t_13 = ((__pyx_v_b - __pyx_v_j) - 1); __pyx_t_16 = (__pyx_v_i + __pyx_v_a); __pyx_t_15 = __pyx_v_j; *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_s_asdi.data + __pyx_t_16 * __pyx_v_s_asdi.strides[0]) )) + __pyx_t_15)) )) = (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_sx_arr.data + __pyx_t_14 * __pyx_v_sx_arr.strides[0]) )) + __pyx_t_13)) ))); } } /* … */ __pyx_t_14 = __pyx_v_i; __pyx_t_13 = ((__pyx_v_b - __pyx_v_j) - 1); __pyx_t_16 = (__pyx_v_i + __pyx_v_a); __pyx_t_15 = __pyx_v_j; *((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_s_asdi.data + __pyx_t_16 * __pyx_v_s_asdi.strides[0]) )) + __pyx_t_15)) )) = (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_sx_arr.data + __pyx_t_14 * __pyx_v_sx_arr.strides[0]) )) + __pyx_t_13)) ))); } }
+885: for i in range(a):
__pyx_t_7 = __pyx_v_a; __pyx_t_8 = __pyx_t_7; for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_i = __pyx_t_9; /* … */ __pyx_t_7 = __pyx_v_a; __pyx_t_8 = __pyx_t_7; for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_i = __pyx_t_9;
+886: for j in range(b):
__pyx_t_10 = __pyx_v_b; __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_j = __pyx_t_12; /* … */ __pyx_t_10 = __pyx_v_b; __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_j = __pyx_t_12;
+887: s_asdi[i, j + b] = -sx_arr[a - i - 1, j]
__pyx_t_13 = ((__pyx_v_a - __pyx_v_i) - 1); __pyx_t_14 = __pyx_v_j; __pyx_t_15 = __pyx_v_i; __pyx_t_16 = (__pyx_v_j + __pyx_v_b); *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_s_asdi.data + __pyx_t_15 * __pyx_v_s_asdi.strides[0]) )) + __pyx_t_16)) )) = (-(*((__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_14)) )))); } } /* … */ __pyx_t_13 = ((__pyx_v_a - __pyx_v_i) - 1); __pyx_t_14 = __pyx_v_j; __pyx_t_15 = __pyx_v_i; __pyx_t_16 = (__pyx_v_j + __pyx_v_b); *((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_s_asdi.data + __pyx_t_15 * __pyx_v_s_asdi.strides[0]) )) + __pyx_t_16)) )) = (-(*((__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_14)) )))); } }
+888: for i in range(a):
__pyx_t_7 = __pyx_v_a; __pyx_t_8 = __pyx_t_7; for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_i = __pyx_t_9; /* … */ __pyx_t_7 = __pyx_v_a; __pyx_t_8 = __pyx_t_7; for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_i = __pyx_t_9;
+889: for j in range(b):
__pyx_t_10 = __pyx_v_b; __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_j = __pyx_t_12; /* … */ __pyx_t_10 = __pyx_v_b; __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_j = __pyx_t_12;
+890: s_asdi[i + a, j + b] = sx_arr[i, j]
__pyx_t_14 = __pyx_v_i; __pyx_t_13 = __pyx_v_j; __pyx_t_16 = (__pyx_v_i + __pyx_v_a); __pyx_t_15 = (__pyx_v_j + __pyx_v_b); *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_s_asdi.data + __pyx_t_16 * __pyx_v_s_asdi.strides[0]) )) + __pyx_t_15)) )) = (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_sx_arr.data + __pyx_t_14 * __pyx_v_sx_arr.strides[0]) )) + __pyx_t_13)) ))); } } /* … */ __pyx_t_14 = __pyx_v_i; __pyx_t_13 = __pyx_v_j; __pyx_t_16 = (__pyx_v_i + __pyx_v_a); __pyx_t_15 = (__pyx_v_j + __pyx_v_b); *((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_s_asdi.data + __pyx_t_16 * __pyx_v_s_asdi.strides[0]) )) + __pyx_t_15)) )) = (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_sx_arr.data + __pyx_t_14 * __pyx_v_sx_arr.strides[0]) )) + __pyx_t_13)) ))); } }
+891: cdef np.ndarray[np.complex128_t, ndim=2] sfx_asdi = np.fft.fft2(s_asdi)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_fft); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_fft2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_s_asdi, 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, 891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 891, __pyx_L1_error) __pyx_t_17 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer, (PyObject*)__pyx_t_17, &__Pyx_TypeInfo___pyx_t_double_complex, PyBUF_FORMAT| PyBUF_STRIDES, 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, 891, __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_17 = 0; __pyx_v_sfx_asdi = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; /* … */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_fft); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_fft2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_s_asdi, 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, 891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 891, __pyx_L1_error) __pyx_t_17 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer, (PyObject*)__pyx_t_17, &__Pyx_TypeInfo___pyx_t_double_complex, PyBUF_FORMAT| PyBUF_STRIDES, 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, 891, __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_17 = 0; __pyx_v_sfx_asdi = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0;
+892: for i in range(a):
__pyx_t_7 = __pyx_v_a; __pyx_t_8 = __pyx_t_7; for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_i = __pyx_t_9; /* … */ __pyx_t_7 = __pyx_v_a; __pyx_t_8 = __pyx_t_7; for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_i = __pyx_t_9;
+893: for j in range(b):
__pyx_t_10 = __pyx_v_b; __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_j = __pyx_t_12; /* … */ __pyx_t_10 = __pyx_v_b; __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_j = __pyx_t_12;
+894: s_asdi[i, j] = -sy_arr[a - i - 1, b - j - 1]
__pyx_t_13 = ((__pyx_v_a - __pyx_v_i) - 1); __pyx_t_14 = ((__pyx_v_b - __pyx_v_j) - 1); __pyx_t_15 = __pyx_v_i; __pyx_t_16 = __pyx_v_j; *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_s_asdi.data + __pyx_t_15 * __pyx_v_s_asdi.strides[0]) )) + __pyx_t_16)) )) = (-(*((__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_14)) )))); } } /* … */ __pyx_t_13 = ((__pyx_v_a - __pyx_v_i) - 1); __pyx_t_14 = ((__pyx_v_b - __pyx_v_j) - 1); __pyx_t_15 = __pyx_v_i; __pyx_t_16 = __pyx_v_j; *((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_s_asdi.data + __pyx_t_15 * __pyx_v_s_asdi.strides[0]) )) + __pyx_t_16)) )) = (-(*((__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_14)) )))); } }
+895: for i in range(a):
__pyx_t_7 = __pyx_v_a; __pyx_t_8 = __pyx_t_7; for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_i = __pyx_t_9; /* … */ __pyx_t_7 = __pyx_v_a; __pyx_t_8 = __pyx_t_7; for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_i = __pyx_t_9;
+896: for j in range(b):
__pyx_t_10 = __pyx_v_b; __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_j = __pyx_t_12; /* … */ __pyx_t_10 = __pyx_v_b; __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_j = __pyx_t_12;
+897: s_asdi[i + a, j] = -sy_arr[i, b - j - 1]
__pyx_t_14 = __pyx_v_i; __pyx_t_13 = ((__pyx_v_b - __pyx_v_j) - 1); __pyx_t_16 = (__pyx_v_i + __pyx_v_a); __pyx_t_15 = __pyx_v_j; *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_s_asdi.data + __pyx_t_16 * __pyx_v_s_asdi.strides[0]) )) + __pyx_t_15)) )) = (-(*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_sy_arr.data + __pyx_t_14 * __pyx_v_sy_arr.strides[0]) )) + __pyx_t_13)) )))); } } /* … */ __pyx_t_14 = __pyx_v_i; __pyx_t_13 = ((__pyx_v_b - __pyx_v_j) - 1); __pyx_t_16 = (__pyx_v_i + __pyx_v_a); __pyx_t_15 = __pyx_v_j; *((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_s_asdi.data + __pyx_t_16 * __pyx_v_s_asdi.strides[0]) )) + __pyx_t_15)) )) = (-(*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_sy_arr.data + __pyx_t_14 * __pyx_v_sy_arr.strides[0]) )) + __pyx_t_13)) )))); } }
+898: for i in range(a):
__pyx_t_7 = __pyx_v_a; __pyx_t_8 = __pyx_t_7; for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_i = __pyx_t_9; /* … */ __pyx_t_7 = __pyx_v_a; __pyx_t_8 = __pyx_t_7; for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_i = __pyx_t_9;
+899: for j in range(b):
__pyx_t_10 = __pyx_v_b; __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_j = __pyx_t_12; /* … */ __pyx_t_10 = __pyx_v_b; __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_j = __pyx_t_12;
+900: s_asdi[i, j + b] = sy_arr[a - i - 1, j]
__pyx_t_13 = ((__pyx_v_a - __pyx_v_i) - 1); __pyx_t_14 = __pyx_v_j; __pyx_t_15 = __pyx_v_i; __pyx_t_16 = (__pyx_v_j + __pyx_v_b); *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_s_asdi.data + __pyx_t_15 * __pyx_v_s_asdi.strides[0]) )) + __pyx_t_16)) )) = (*((__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_14)) ))); } } /* … */ __pyx_t_13 = ((__pyx_v_a - __pyx_v_i) - 1); __pyx_t_14 = __pyx_v_j; __pyx_t_15 = __pyx_v_i; __pyx_t_16 = (__pyx_v_j + __pyx_v_b); *((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_s_asdi.data + __pyx_t_15 * __pyx_v_s_asdi.strides[0]) )) + __pyx_t_16)) )) = (*((__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_14)) ))); } }
+901: for i in range(a):
__pyx_t_7 = __pyx_v_a; __pyx_t_8 = __pyx_t_7; for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_i = __pyx_t_9; /* … */ __pyx_t_7 = __pyx_v_a; __pyx_t_8 = __pyx_t_7; for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { __pyx_v_i = __pyx_t_9;
+902: for j in range(b):
__pyx_t_10 = __pyx_v_b; __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_j = __pyx_t_12; /* … */ __pyx_t_10 = __pyx_v_b; __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_j = __pyx_t_12;
+903: s_asdi[i + a, j + b] = sy_arr[i, j]
__pyx_t_14 = __pyx_v_i; __pyx_t_13 = __pyx_v_j; __pyx_t_16 = (__pyx_v_i + __pyx_v_a); __pyx_t_15 = (__pyx_v_j + __pyx_v_b); *((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_s_asdi.data + __pyx_t_16 * __pyx_v_s_asdi.strides[0]) )) + __pyx_t_15)) )) = (*((__pyx_t_5numpy_float64_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_sy_arr.data + __pyx_t_14 * __pyx_v_sy_arr.strides[0]) )) + __pyx_t_13)) ))); } } /* … */ __pyx_t_14 = __pyx_v_i; __pyx_t_13 = __pyx_v_j; __pyx_t_16 = (__pyx_v_i + __pyx_v_a); __pyx_t_15 = (__pyx_v_j + __pyx_v_b); *((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_s_asdi.data + __pyx_t_16 * __pyx_v_s_asdi.strides[0]) )) + __pyx_t_15)) )) = (*((__pyx_t_5numpy_float32_t *) ( /* dim=1 */ ((char *) (((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_sy_arr.data + __pyx_t_14 * __pyx_v_sy_arr.strides[0]) )) + __pyx_t_13)) ))); } }
+904: cdef np.ndarray[np.complex128_t, ndim=2] sfy_asdi = np.fft.fft2(s_asdi)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_fft); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_fft2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_s_asdi, 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, 904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 904, __pyx_L1_error) __pyx_t_18 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer, (PyObject*)__pyx_t_18, &__Pyx_TypeInfo___pyx_t_double_complex, PyBUF_FORMAT| PyBUF_STRIDES, 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, 904, __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_18 = 0; __pyx_v_sfy_asdi = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; /* … */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_fft); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_fft2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_s_asdi, 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, 904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 904, __pyx_L1_error) __pyx_t_18 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_sfy_asdi.rcbuffer->pybuffer, (PyObject*)__pyx_t_18, &__Pyx_TypeInfo___pyx_t_double_complex, PyBUF_FORMAT| PyBUF_STRIDES, 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, 904, __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_18 = 0; __pyx_v_sfy_asdi = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0;
+905: for i in range(2 * a):
__pyx_t_19 = (2 * __pyx_v_a); __pyx_t_20 = __pyx_t_19; for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_20; __pyx_t_9+=1) { __pyx_v_i = __pyx_t_9; /* … */ __pyx_t_19 = (2 * __pyx_v_a); __pyx_t_20 = __pyx_t_19; for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_20; __pyx_t_9+=1) { __pyx_v_i = __pyx_t_9;
+906: xf = <float_t>(i) / 2 / a - i // a
__pyx_v_xf = (((((__pyx_t_5numpy_float64_t)__pyx_v_i) / 2.0) / ((__pyx_t_5numpy_float64_t)__pyx_v_a)) - (__pyx_v_i / __pyx_v_a)); /* … */ __pyx_v_xf = (((((__pyx_t_5numpy_float32_t)__pyx_v_i) / 2.0) / ((__pyx_t_5numpy_float32_t)__pyx_v_a)) - (__pyx_v_i / __pyx_v_a));
+907: for j in range(2 * b):
__pyx_t_21 = (2 * __pyx_v_b); __pyx_t_22 = __pyx_t_21; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_22; __pyx_t_12+=1) { __pyx_v_j = __pyx_t_12; /* … */ __pyx_t_21 = (2 * __pyx_v_b); __pyx_t_22 = __pyx_t_21; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_22; __pyx_t_12+=1) { __pyx_v_j = __pyx_t_12;
+908: yf = <float_t>(j) / 2 / b - j // b
__pyx_v_yf = (((((__pyx_t_5numpy_float64_t)__pyx_v_j) / 2.0) / ((__pyx_t_5numpy_float64_t)__pyx_v_b)) - (__pyx_v_j / __pyx_v_b)); /* … */ __pyx_v_yf = (((((__pyx_t_5numpy_float32_t)__pyx_v_j) / 2.0) / ((__pyx_t_5numpy_float32_t)__pyx_v_b)) - (__pyx_v_j / __pyx_v_b));
+909: sf_asdi[i, j] = (xf * sfx_asdi[i, j] + yf * sfy_asdi[i, j]) / (2j * pi * (xf**2 + yf**2))
__pyx_t_13 = __pyx_v_i; __pyx_t_14 = __pyx_v_j; __pyx_t_23 = (*__Pyx_BufPtrStrided2d(__pyx_t_double_complex *, __pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_sfx_asdi.diminfo[0].strides, __pyx_t_14, __pyx_pybuffernd_sfx_asdi.diminfo[1].strides)); __pyx_t_14 = __pyx_v_i; __pyx_t_13 = __pyx_v_j; __pyx_t_24 = (*__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_13, __pyx_pybuffernd_sfy_asdi.diminfo[1].strides)); __pyx_t_25 = __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(0, 2.0), __pyx_t_double_complex_from_parts(M_PI, 0)); __pyx_t_26 = __Pyx_c_quot_npy_float64(__Pyx_c_sum_npy_float64(__Pyx_c_prod_npy_float64(__pyx_t_npy_float64_complex_from_parts(__pyx_v_xf, 0), __pyx_t_npy_float64_complex_from_parts(__Pyx_CREAL(__pyx_t_23), __Pyx_CIMAG(__pyx_t_23))), __Pyx_c_prod_npy_float64(__pyx_t_npy_float64_complex_from_parts(__pyx_v_yf, 0), __pyx_t_npy_float64_complex_from_parts(__Pyx_CREAL(__pyx_t_24), __Pyx_CIMAG(__pyx_t_24)))), __Pyx_c_prod_npy_float64(__pyx_t_npy_float64_complex_from_parts(__Pyx_CREAL(__pyx_t_25), __Pyx_CIMAG(__pyx_t_25)), __pyx_t_npy_float64_complex_from_parts((pow(__pyx_v_xf, 2.0) + pow(__pyx_v_yf, 2.0)), 0))); __pyx_t_13 = __pyx_v_i; __pyx_t_14 = __pyx_v_j; *((__pyx_t_double_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_double_complex *) ( /* dim=0 */ (__pyx_v_sf_asdi.data + __pyx_t_13 * __pyx_v_sf_asdi.strides[0]) )) + __pyx_t_14)) )) = __pyx_t_double_complex_from_parts(__Pyx_CREAL(__pyx_t_26), __Pyx_CIMAG(__pyx_t_26)); } } /* … */ __pyx_t_13 = __pyx_v_i; __pyx_t_14 = __pyx_v_j; __pyx_t_15 = __pyx_v_i; __pyx_t_16 = __pyx_v_j; __pyx_t_23 = __pyx_v_i; __pyx_t_24 = __pyx_v_j; *((__pyx_t_double_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_double_complex *) ( /* dim=0 */ (__pyx_v_sf_asdi.data + __pyx_t_23 * __pyx_v_sf_asdi.strides[0]) )) + __pyx_t_24)) )) = __Pyx_c_quot_double(__Pyx_c_sum_double(__Pyx_c_prod_double(__pyx_t_double_complex_from_parts(__pyx_v_xf, 0), (*__Pyx_BufPtrStrided2d(__pyx_t_double_complex *, __pyx_pybuffernd_sfx_asdi.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_sfx_asdi.diminfo[0].strides, __pyx_t_14, __pyx_pybuffernd_sfx_asdi.diminfo[1].strides))), __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(__pyx_v_yf, 0), (*__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_16, __pyx_pybuffernd_sfy_asdi.diminfo[1].strides)))), __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((powf(__pyx_v_xf, 2.0) + powf(__pyx_v_yf, 2.0)), 0))); } }
+910: sf_asdi[0, 0] = 0
__pyx_t_14 = 0; __pyx_t_13 = 0; *((__pyx_t_double_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_double_complex *) ( /* dim=0 */ (__pyx_v_sf_asdi.data + __pyx_t_14 * __pyx_v_sf_asdi.strides[0]) )) + __pyx_t_13)) )) = __pyx_t_double_complex_from_parts(0, 0); /* … */ __pyx_t_16 = 0; __pyx_t_15 = 0; *((__pyx_t_double_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_double_complex *) ( /* dim=0 */ (__pyx_v_sf_asdi.data + __pyx_t_16 * __pyx_v_sf_asdi.strides[0]) )) + __pyx_t_15)) )) = __pyx_t_double_complex_from_parts(0, 0);
+911: return np.asarray(np.fft.ifft2(sf_asdi).real[a:, b:], dtype=dtype)
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_asarray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_fft); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_ifft2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_sf_asdi, 2, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_double_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_double_complex, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_27 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_27 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_27)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_27); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_27) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_27, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_real); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_Py_intptr_t(__pyx_v_a); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PySlice_New(__pyx_t_1, Py_None, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_Py_intptr_t(__pyx_v_b); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_27 = PySlice_New(__pyx_t_1, Py_None, Py_None); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 911, __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_27); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_27); __pyx_t_4 = 0; __pyx_t_27 = 0; __pyx_t_27 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_27); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_27); __pyx_t_27 = 0; __pyx_t_27 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); if (PyDict_SetItem(__pyx_t_27, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 911, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_27); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* … */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_asarray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_fft); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_ifft2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_sf_asdi, 2, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_double_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_double_complex, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_25 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_25 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_25)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_25); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_25) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_25, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_real); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_Py_intptr_t(__pyx_v_a); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PySlice_New(__pyx_t_1, Py_None, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_Py_intptr_t(__pyx_v_b); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_25 = PySlice_New(__pyx_t_1, Py_None, Py_None); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 911, __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_25); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_25); __pyx_t_4 = 0; __pyx_t_25 = 0; __pyx_t_25 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_25); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_25); __pyx_t_25 = 0; __pyx_t_25 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); if (PyDict_SetItem(__pyx_t_25, __pyx_n_s_dtype, __pyx_v_dtype) < 0) __PYX_ERR(0, 911, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_25); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;